JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级、跨平台的数据交换格式。
一 相较于xml,json的优点:
1 JS(JavaScript的简写)中处理XML非常不方便,而json显得非常好用;
2 XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记;
二 json的两种表示结构:对象和数组。
对象:
{
key1:value1,
key2:value2,
...
}
key必须是字符串,value可以是字符串,也可以是其他类型。
数组:
[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]
三 名词辨别:
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };
四 Java 代码中演示:
导入 json-lib.jar
代码演示:
public class JsonTest
{
@Test
public void list2Json()
{
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject(list);
//System.out.println(list);
System.out.println( jsonArray2.get(0));
System.out.println( jsonArray2.get(1));
}
@Test
public void map2Json()
{
Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject json = JSONObject.fromObject(map);
System.out.println(json.get("int"));
}
@Test
public void arr2Json()
{
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
System.out.println(jsonArray1);
}
}
结果:
first
second
1
[true,false,true]