JSON
1. 初始JSON1.1. JSON介绍(熟练)1.2. JSON格式1.2.1. 键值对集合1.2.2. 有序列表
2. FastJson (精通)2.1. Java对象转JSON字符串/JSON对象2.1.1. Map2.1.2. List2.1.3. JavaBean
2.2. JSON字符串/JSON对象转Java对象2.2.1. Map2.2.2. List2.2.3. JavaBean2.2.4. 复杂数据类型
3. JS操作JSON对象(熟悉)
1. 初始JSON
1.1. JSON介绍(熟练)
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON 是轻量级的
文本数据交换格式JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
JSON 具有自我描述性,更易理解
1.2. JSON格式
1.2.1. 键值对集合
“名称/值”对的集合(A collection of name/value pairs)。 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”开始,“}”结束。每个“名称”后跟一个“:”,“‘名称/值’ 对”之间使用“,”分隔。
示例:
var json
= {“name”
:”Jack”
,”age”
:90,”Marray”
:true};
{"name":"Jack","Marray":true,"age":90}
1.2.2. 有序列表
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 数组是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔。
示例:
var json
= [“Jack”
,”Rose”
,”Tom”
,89,true,false];
2. FastJson (精通)
2.1. Java对象转JSON字符串/JSON对象
2.1.1. Map
private static void map2JSON(){
Map
<String
,Object
> map
= new HashMap<>();
map
.put("id",1);
map
.put("name","张三");
map
.put("birthday",new Date());
String jsonString
= JSON.toJSONString(map
);
JSONObject jsonObject
= (JSONObject
) JSON.toJSON(map
);
System
.out
.println(jsonString
);
System
.out
.println(jsonObject
);
}
{“birthday”:1548642714656,“name”:“张三”,“id”:1}
2.1.2. List
private static void list2JSON(){
List
<String
> list
= new ArrayList<>();
list
.add("a");
list
.add("b");
list
.add("c");
String jsonString
= JSON.toJSONString(list
);
JSONArray jSONArray
= (JSONArray
) JSONArray
.toJSON(list
);
System
.out
.println(jsonString
);
System
.out
.println(jSONArray
);
}
[“a”,“b”,“c”]
2.1.3. JavaBean
private static void bean2JSON(){
Person p
= new Person(1,"张三",new Date());
String jsonString
= JSON.toJSONString(p
);
JSONObject jsonObject
= (JSONObject
) JSON.toJSON(p
);
System
.out
.println(jsonString
);
System
.out
.println(jsonObject
);
}
{“birthday”:1548643135123,“id”:1,“name”:“张三”}
2.2. JSON字符串/JSON对象转Java对象
2.2.1. Map
private static void JSON2Map(){
JSONObject jsonObject
= new JSONObject();
jsonObject
.put("a",1);
jsonObject
.put("b","bb");
jsonObject
.put("c",new Date());
String jsonString
= jsonObject
.toJSONString();
Map
<String
,Object
> map1
= JSON.parseObject(jsonString
, Map
.class);
System
.out
.println(map1
);
}
{a=1, b=bb, c=1548645386767}
2.2.2. List
private static void JSON2Array(){
JSONArray jsonArray
= new JSONArray();
jsonArray
.add("a");
jsonArray
.add("b");
jsonArray
.add("c");
jsonArray
.add("d");
String jsonString
= jsonArray
.toJSONString();
List
<String
> list
= JSONArray
.parseArray(jsonString
, String
.class);
System
.out
.println(list
);
}
[a, b, c, d]
2.2.3. JavaBean
private static void JSON2Person(){
JSONObject jsonObject
= new JSONObject();
jsonObject
.put("id",1);
jsonObject
.put("name","张三");
jsonObject
.put("birthday",new Date());
String jsonString
= jsonObject
.toJSONString();
System
.out
.println(jsonString
);
Person person
= JSONObject
.parseObject(jsonString
, Person
.class);
System
.out
.println(person
);
}
{“birthday”:1548645582282,“name”:“张三”,“id”:1} Person{id=1, name=‘张三’, birthday=Mon Jan 28 11:19:42 CST 2019}
2.2.4. 复杂数据类型
private static void JSON2ListInMap(){
Map
<String
,Object
> result
= new HashMap<>();
result
.put("status","success");
result
.put("code","200");
List
<Person
> list
= new ArrayList<>();
list
.add(new Person(1,"张三",new Date()));
list
.add(new Person(2,"李四",new Date()));
list
.add(new Person(3,"王五",new Date()));
list
.add(new Person(4,"赵六",new Date()));
result
.put("data",list
);
String jsonString
= JSON.toJSONString(result
);
System
.out
.println(jsonString
);
Map
<String
,Object
> map
= JSONObject
.parseObject(jsonString
, Map
.class);
System
.out
.println(map
);
JSONObject jsonObject
= (JSONObject
)JSONObject
.parse(jsonString
);
JSONArray jsonArray
= (JSONArray
) jsonObject
.get("data");
List
<Person
> array
= JSONArray
.parseArray(jsonArray
.toJSONString(), Person
.class);
map
.put("data",array
);
System
.out
.println(map
);
}
{“code”:“200”,“data”:[{“birthday”:1548646719839,“id”:1,“name”:“张三”},{“birthday”:1548646719839,“id”:2,“name”:“李四”},{“birthday”:1548646719839,“id”:3,“name”:“王五”},{“birthday”:1548646719839,“id”:4,“name”:“赵六”}],“status”:“success”}
{code=200, data=[{“birthday”:1548646719839,“name”:“张三”,“id”:1},{“birthday”:1548646719839,“name”:“李四”,“id”:2},{“birthday”:1548646719839,“name”:“王五”,“id”:3},{“birthday”:1548646719839,“name”:“赵六”,“id”:4}], status=success}
{code=200, data=[Person{id=1, name=‘张三’, birthday=Mon Jan 28 11:38:39 CST 2019}, Person{id=2, name=‘李四’, birthday=Mon Jan 28 11:38:39 CST 2019}, Person{id=3, name=‘王五’, birthday=Mon Jan 28 11:38:39 CST 2019}, Person{id=4, name=‘赵六’, birthday=Mon Jan 28 11:38:39 CST 2019}], status=success}
3. JS操作JSON对象(熟悉)
<script type
="text/javascript" >
var list
= new Array();
list
[0] = "a";
list
[1] = "b";
list
[2] = "c";
var obj
= {
"id" : 1,
"name" : "张三",
"data" : list
,
"createDate" : new Date()
}
console
.log(obj
);
alert(obj
.id
);
alert(obj
.name
);
alert(obj
.createDate
);
var data
= obj
.data
;
alert(data
);
for(var i
=0;i
<data
.length
;i
++){
alert(data
[i
]);
}
</script
>