一:简介:JSON: 全称JavaScript object Notation ,JS对象简谱,是一种轻量级 数据交换格式
二:对象格式:
1.一个对象, 由一个大括号表示。括号中 描述对象的属性通过键值对来描述对象的属性
(可以理解为, 大括号中, 包含的是一个个的键值对.)
2.格式:
键与值之间使用冒号连接, 多个键值对之间使用逗号分隔。
键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解析.)
键值对的值, 可以是JS中的任意类型的数据
示例:
{ "name":"clk", "age":"20", "sex":"man" }
3.在JSON格式中可以与对象相互嵌套:
例子:
{ "name":"clk", "age":"20", "subject":["Java","OS","COA",{ "Cname":"高等数学", "info":"比数学更高等的数学" }], "hobby":["看小说","听音乐","学java"] }
三:Java与JSON:
java中的对象可以快速转换为JSON格式的字符串。
JSON格式的字符串可以转换为java的对象。
1.Gson:
(1)将对象转换为JSON字符串:
步骤:
(i)引入JAR包
(ii)在需要转换JSON字符串的位置编写如下代码:
String json = new Gson().toJSON(需要转换的对象)
例子:
Book b = new Book(); b.setName="金苹果"; b.setInfo="苹果种植很辛苦"; String json = new Gson().toJson(b); System.out.println(json);
(2)将JSON字符串转换为对象
(i)引入JAR包
(ii)在需要转换java对象的位置,编写如下代码:
//对象 = new Gson().fromJson(JSON字符串,对象类型.class);
例子:
String json = "{\"name\":\"clk\",\"subject\":[\"java\",\"os\",\"coa\"],\"sex\":\"man\"}"; Student stu = new Gson().fromJson(json,Student.class); System.out.println(book);
2.FastJson
(1)将对象转换为JSON字符串
步骤:
(i)引入JAR包
(ii)在需要转换JSON字符串的位置编写如下代码:
//String json = JSON.toJSONString(需要转换的对象);
例子:
Book book = new Book(); book.setName = "金苹果"; book.setInfo = "苹果种植很辛苦"; String json = JSON.toJSONString(book); System.out.println(json);
(2)将JSON字符串转换为对象
步骤:
(i)引入JAR包
(ii)在需要转换JSON字符串的位置编写如下代码:
//类型 对象名=JSON.parseObject(JSON字符串, 类型.class); //List<类型> list=JSON.parseArray(JSON字符串,类型.class);
例子:
List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]",String.class); System.out.println(strings.get(1));//输出二三四 Book b = new Book("唐诗三百首","1001"); String json = JSON.toJSONString(b); System.out.println(json);