1.JSON是什么?
-
JSON的全称为JavaScript Object Notation ,也就是JavaScript对象标记法。
-
JSON是一种轻量级的数据交换格式,用于两个程序之间的数据交换,类似于XML文档。
2.JSON对象格式
使用JSON表示一个对象的格式:
{
"属性名1":"属性值1",
"属性名2":"属性值2",
......
"属性名":"属性值n"
}
注意事项
-
一个对象整体由一个大括号表示
-
对象的属性,是由一个个键值对组成
-
键值对的键与值之间应该使用冒号隔开,而不同键值对之间需要使用逗号隔开
-
键与值最好都使用双引号,值可以是JavaScript中的任何一种数据类型
示例
{
"name":"金苹果",
"info":"讲述了种植苹果的辛酸历程"
}
3.JSON数组表示
JSON中的数组使用 [ ] 表示,并且数组可以跟对象互相嵌套
格式:
[元素1,元素2...]
示例:
数组包含对象
["张三","李四",{
"name":"王五",
"info":"一个在技术上使劲钻研的人"
}]
对象包含数组:
{
"name":"李小超",
"friend":["张三","李四",
{
"name":"王五",
"info":"一个在技术上使劲钻研的人"
}
]
"info":"一个非常帅气的人"
}
对象与对象的嵌套:
{
"name":"李小超",
"project":{
"school":"HPU",
"name":"computer"
}
}
4.JSON的解析
1. 使用Gson解析JSON文件
-
将Java对象转换为JSON字符串
String json = new Gson().toJSON(要转换的对象);
代码示例:
Book b = new Book("金苹果","讲述了种植苹果的辛酸路程"); String str = new Gson().toJson(b);
-
将JSON字符串转换为Java对象
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
代码示例:
-
将JSON字符串转换为Java对象
Book b2 = new Gson().fromJson(str, Book.class); System.out.println(b2.getName());
-
将JSON字符串转换为Java集合
String js = "{\"name\":\"金苹果\",\"info\":\"讲述了种植苹果的辛酸历程\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\"]}"; HashMap data = new Gson().fromJson(js,HashMap.class); System.out.println(data.get("page").getClass());
我们在写JSON字符串的时候,需要注意使用转义字符转换双引号,另外,如果键值对的值是JSON数组,那么对应数组在转换之后的类型是ArrayList
2. 使用fastJson解析JSON文件
使用fastJSON解析与Gson十分相似,不过前者使用的是静态方法。
-
Java对象转换为JSON字符串
String json=JSON.toJSONString(要转换的对象);
-
JSON字符串转换为Java对象
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或者
List<类型> list=JSON.parseArray(JSON字符串,类型.class);
示例:
转换为Java对象
Book b2 = JSON.parseObject(json1,Book.class);
转换为List集合
List list = JSON.parseArray(json1,String.class);
在这里进行说明一下,我们观察JSON.parseArray()的源码可以看到,这个方法的返回值就是一个List类型的数据,我们向方法中传递的第二个参数是List元素所属的类型。
、
蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码ben_lanlan,报下信息,会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。
文章来源:csdn
分享此文一切功德,皆悉回向给文章原作者及众读者.
免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。
蓝蓝设计( www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 、平面设计服务