最新消息:阿里云双12优惠,史上最低折扣。

JSON如何被定义?在不同编程语言中如何应用?

服务器租用 aliyun 209浏览

Linux shell脚本编程如何操作?如何创建与执行?

在linux系统下进行测试时,使用shell脚本编程可以解决更多繁琐复杂的编程步骤,简化流程,提高效率。那么对于linux下shell脚本编程如何操作?如何创建与执行?

在编程语言中经常使用的JSON是什么,如何被定义的?以及在包括C、C++、C#、java、JavaScript、Perl、Python等不同编程语言中如何得到应用的JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

下面介绍在PHP、Python以及Java中如何应用JSON。

1.在PHP中使用JSON

使用 PHP 编码 JSON(json_encode)

PHP 的 json_encode() 函数用于在 PHP 中编码 JSON。编码成功时这个函数返回给定值的 JSON 表示形式,失败则返回 FALSE。

语法:

string json_encode ( $value [, $options = 0 ] )

参数:

•value: 要编码的值。这个函数只能用于 UTF-8 编码的数据。

•options: 这个可选值是一个由 JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT 组成的位掩码。

示例:

下面的例子展示了如何使用 PHP 将一个数组转换为 JSON:

<?php

$arr = array(‘a’ => 1, ‘b’ => 2, ‘c’ => 3, ‘d’ => 4, ‘e’ => 5);

echo json_encode($arr);

?>

执行时会生成如下结果:

{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}

下面的例子展示了 PHP 对象也可以被转换为 JSON:

<?php

class Emp {

public $name = “”;

public $hobbies = “”;

public $birthdate = “”;

}

$e = new Emp();

$e->name = “sachin”;

$e->hobbies = “sports”;

$e->birthdate = date(‘m/d/Y h:i:s a’, strtotime(“8/5/1974 12:20:03”));

echo json_encode($e);

?>

执行时会生成如下所示结果:

{“name”:”sachin”,”hobbies”:”sports”,”birthdate”:”08//05//1974 12:20:03 pm”}

使用 PHP 解码 JSON(json_decode)

PHP 的 json-decode() 函数用于在 PHP 中解码 JSON。这个函数返回从 JSON 解码到适当 PHP 类型的值。

2.在Python中使用JSON

使用 Python 编码 JSON(encode)

Python 的 encode() 函数用于将 Python 对象编码为 JSON 字符串表示。

语法:

demjson.encode(self, obj, nest_level=0)

示例:

下面的例子展示了使用 Python 将数组转换为 JSON

#!/usr/bin/python

import demjson

data = [ { ‘a’ : 1, ‘b’ : 2, ‘c’ : 3, ‘d’ : 4, ‘e’ : 5 } ]

json = demjson.encode(data)

print json

执行时会生成如下所示结果:

[{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}]

使用 Python 解码 JSON(decode)

Python 可以使用 demjson.decode() 函数处理 JSON 解码。这个函数返回从 JSON 解码到适当 Python 类型的值。

语法:

demjson.decode(self, txt)

示例:

下面的例子展示了如何使用 Python 解码 JSON 对象。

#!/usr/bin/python

import demjson

json = ‘{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}’;

text = demjson.decode(json)

print text

执行时生成如下所示结果:

{u’a’: 1, u’c’: 3, u’b’: 2, u’e’: 5, u’d’: 4}

3.在Java中使用JSON

在 Java 中编码 JSON

下面这个简单的示例展示了使用 java.util.HashMap 的子类 JSONObject 编码一个 JSON 对象。这里并没有提供顺序。如果你需要严格的元素顺序,请使用 JSONValue.toJSONString(map) 方法的有序映射实现,比如 java.util.LinkedHashMap。

import org.json.simple.JSONObject;

class JsonEncodeDemo

{

public static void main(String[] args)

{

JSONObject obj = new JSONObject();

obj.put(“name”, “foo”);

obj.put(“num”, new Integer(100));

obj.put(“balance”, new Double(1000.21));

obj.put(“is_vip”, new Boolean(true));

System.out.print(obj);

}

}

编译和执行上面的程序时,会生成如下所示结果:

{“balance”: 1000.21, “num”:100, “is_vip”:true, “name”:”foo”}

下面是另一个示例,使用 Java JSONObject 展示了 JSON 对象流

java

import org.json.simple.JSONObject;

class JsonEncodeDemo

{

public static void main(String[] args)

{

JSONObject obj = new JSONObject();

obj.put(“name”,”foo”);

obj.put(“num”,new Integer(100));

obj.put(“balance”,new Double(1000.21));

obj.put(“is_vip”,new Boolean(true));

StringWriter out = new StringWriter();

obj.writeJSONString(out);

String jsonText = out.toString();

System.out.print(jsonText);

}

}

编译和执行上面的程序时,会生成如下所示结果:

{“balance”: 1000.21, “num”:100, “is_vip”:true, “name”:”foo”}

在 Java 中解码 JSON

下面的例子使用了 JSONObject 和 JSONArray,其中 JSONObject 就是 java.util.Map,JSONArray 就是 java.util.List,因此我们可以使用 Map 或 List 的标准操作访问它们。

import org.json.simple.JSONObject;

import org.json.simple.JSONArray;

import org.json.simple.parser.ParseException;

import org.json.simple.parser.JSONParser;

class JsonDecodeDemo

{

public static void main(String[] args)

{

JSONParser parser=new JSONParser();

String s = “[0,{/”1/”:{/”2/”:{/”3/”:{/”4/”:[5,{/”6/”:7}]}}}}]”;

try{

Object obj = parser.parse(s);

JSONArray array = (JSONArray)obj;

System.out.println(“The 2nd element of array”);

System.out.println(array.get(1));

System.out.println();

JSONObject obj2 = (JSONObject)array.get(1);

System.out.println(“Field /”1/””);

System.out.println(obj2.get(“1”));

s = “{}”;

obj = parser.parse(s);

System.out.println(obj);

s= “[5,]”;

obj = parser.parse(s);

System.out.println(obj);

s= “[5,,2]”;

obj = parser.parse(s);

System.out.println(obj);

}catch(ParseException pe){

System.out.println(“position: ” + pe.getPosition());

System.out.println(pe);

}

}

}

编译和执行上面的程序时,会生成如下所示结果:

The 2nd element of array

{“1”:{“2”:{“3”:{“4”:[5,{“6”:7}]}}}}

Field “1”

{“2”:{“3”:{“4”:[5,{“6”:7}]}}}

{}

[5]

[5,2]

转载请注明:小猪云服务器租用推荐 » JSON如何被定义?在不同编程语言中如何应用?