一、什么是 JSON
?
JSON 指的是
JavaScript
对象表示法(JavaScript Object Notation)
JSON
是轻量级的文本数据交换格式
JSON
独立于语言 *
JSON
具有自我描述性,更易理解
JSON 使用
JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON
库支持许多不同的编程语言。
二、JSON 语法规则
JSON 语法是
JavaScript 对象表示法语法的子集。
数据在名称/值对中:
数据由逗号分隔,
花括号保存对象{
}
方括号保存数组[
]
如:"firstName" :
"John"等价于这条
JavaScript 语句:firstName = "John"
关注公众号有更多技术文章啊
三、JSON 数据类型
数字:number(整数或浮点数)
字符串:string(在双引号中)
逻辑值:boolean(true
或 false)
数组:array(在方括号中)
对象:object(在花括号中)
Null
如:
1.数字
{"age"
:1}
2.字符串
{"name":
"admin"}
3.JSON
对象
JSON
对象在花括号中书写:
对象可以包含多个名称/值对:
{
"firstName":"John" , "lastName":"Doe" }
这一点也容易理解,与这条 JavaScript 语句等价:
firstName =
"John"
lastName =
"Doe"
4.JSON
数组
JSON
数组在方括号中书写:
数组可包含多个对象:
{
"employees":
[{
"name":
"tom1",
"age":
22
}, {
"name":
"tom2",
"age":
30
}, {
"name":
"tom3",
"age":
40
}]
}
在上面的例子中,对象 "employees"
是包含三个对象的数组。每个对象代表一条关于某人(有姓名和年龄)的记录。
四、js操作JSON
1.操作对象
var employees = { "name":"tony" , "age":33
};
;
2.操作数组
获取JSON数组中的数据
var employees =
[
{
"firstName":"Bill" , "lastName":"Gates" },
{
"firstName":"George" , "lastName":"Bush" },
{
"firstName":"Thomas" , "lastName": "Carter" }
];
;
遍历输出JSON数组中的值
var employees =[
{
"firstName":"Bill" , "lastName":"Gates" },
{
"firstName":"George" , "lastName":"Bush" },
{
"firstName":"Thomas" , "lastName": "Carter" }
];
for(var
i=0;i
document.write(employees[i].firstName+"
"+employees[i].lastName+"
" );
}
五、案例操作
说明:通过js都Json数据进行维护
var obj = {
"v1":
"value1",
"v2":
"value2",
"count":
3,
"person":
[ //数组结构JSON对象,可以嵌套使用
{
"id":
1,
"name":
"张三"
},
{
"id":
2,
"name":
"李四"
}
],
"object":
{ //对象结构JSON对象
"id":
1,
"msg":
"对象里的对象"
}
};
function
readJSON() {
;
;
//或者
;
//或者
}
function
listJson() {
for
(var c in obj) {
document.write(c
+ ":" +obj[c] +"
");
}
}
function
updateJson() {
obj.v1="value3";
}
function
addJson() {
obj.v8="value8";
}
function
deleteJson() {
delete
obj.v1;
}
六、Java和Json相互转换
1.需要jar包
2.数据封装类
publicclassPerson
{
privateintid;
privateString
name;
publicPerson(){
}
publicPerson(intid,
String name)
{
this.id=
id;
this.name=
name;
}
publicintgetId()
{
returnid;
}
publicvoidsetId(intid)
{
this.id=
id;
}
publicString
getName() {
returnname;
}
publicvoidsetName(String
name)
{
this.name=
name;
}
}
3.java转换为json
// 1.java-->Json对象
Person p1=
newPerson(1,
"张三1");
JSONArray perJson=
JSONArray.fromObject(p1);
String perString=
perJson.toString();
System.out.println(perString);
// 2.java-->Json集合
Person p2=
newPerson(2,
"张三2");
Person p3=
newPerson(3,
"张三3");
Person p4=
newPerson(4,
"张三4");
ArrayListlist=
newArrayList();
list.add(p2);
list.add(p3);
list.add(p4);
JSONArray listJson=
JSONArray.fromObject(list);
String listString=
listJson.toString();
System.out.println(listString);
4.Json转换为java
// 3.Json-->java
对象
if(perString.indexOf("[")
!= -1) {
perString=
perString.replace("[",
"");
}
if(perString.indexOf("]")
!= -1) {
perString=
perString.replace("]",
"");
}
JSONObject obj=
newJSONObject().fromObject(perString);
Person p5=
(Person) JSONObject.toBean(obj,
Person.class);
System.out.println(p5.getName());
// 4.Json-->java
Array
List list2=
JSONArray.toList(listJson,
newPerson(),
newJsonConfig());
Person person=
(Person) list2.get(1);
System.out.println(person.getName());
关注公众号有更多技术文章啊