这是json在线解析 网站 好使!!
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
JSON采用完全独立于语言的文本格式,就是说不同的编程语言JSON数据是一致的。JS原生支持JSON.
在JSON出现之前,大家一直用XML来传递数据。因为XML是一种纯文本格式,所以它适合在网络上交换数据。
XML本身不算复杂,但是,加上DTD、XSD、XPath、XSLT等一大堆复杂的规范以后,
任何正常的软件开发人员碰到XML都会感觉头大了,最后大家发现,即使你努力钻研几个月,
也未必搞得清楚XML的规范。于是更简洁清晰的JSON格式应运而生。风靡全球。
1:纯文本形式并具备简洁和清晰的层次结构。
2: JSON 具有“自我描述性”,易于人阅读和编写。
3:具有层级结构,易于机器解析和生成,可以有效地提升网络传输效率。
4:可以在js中直接解析。
前端js 自动可以解析 JSON 这里就不挨个写了!
JSON有几种存储格式?
两种,一种是对象形式存储数据,一种是数组形式存储数据。1.对象格式:
对象格式: { "k1":obj,"k2":obj }
举例: { "name":"jack", "age":18, "wife":null }语法:
1.对象可以包含多个 key/value(键/值)对。
2.key 必须是字符串,value可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
3.key 和 value 中使用冒号(:)分割。
4.每个 key/value 对使用逗号(,)分割。2.JSON数组格式:
数组格式:[obj,obj,obj...]
举例: [ "tjtc", "it", "czzxxy" ]
语法规则:
1.JSON 数组在中括号中书写。
2.JSON 中数组value值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。。
3.JSON数组可以使用jQuery语法完成遍历。
注意:
学习前面两个基本格式,对应的值用value来表示,那么value可以是哪些具体的类型呢?
string,number,object,array,true,false,null
举例:
{"name":"红楼梦","alias":"石头记","author":[ "曹雪芹", "程伟元", "高鹗" ]}
注意:
1.java本身没有json对象及数组格式。但是支持字符串,而JSON本质就是一串特殊的字符串。
2.所以我们只需把JAVA 对象或集合转换成 JSON 格式的字符串,传递给前端,前端就可以解析了。
3同样如果前端传递json字符串给Java,我们只需把JSON格式字符串转换成相应Java对象即可。如何完成Java中的对象和JSON字符串的相互转换呢?
我们可以采用JSON 的转换工具来完成。
JSON转换工具是什么,有何作用?
json的转换工具是通过java封装好的一些jar工具包,完成java对象与json格式的字符串的相互转换。目前企业中最为流行的是FastJson,我们选择FastJson来完成解析。
-
- import com.alibaba.fastjson.JSON;
- import com.itheima.pojo.User;
- import org.junit.Test;
-
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Map;
-
- /*
- !json个java对象的相互转换!
- java对象--json
- json--java对象
- 要求咱们的java对象 必须有setget方法
- 还需要导入jar包--json转换包
- 导入依赖之后
- 学习api
- java对象--json
- JSON.toJSONString(对象) 返回json文本
- json--java对象
- 对象的类型 parseObject(json字符串,对象的类型)
- User User.class
- List<对象类型> parseArray(json字符串,集合中对象的类型)
- List
User.class - */
-
- public class Object2Json {
-
- // javabean--json
- @Test
- public void javaObject2Json(){
- User user = new User("张三",19,"男");
- //在java是一个对象
- // 如果前端需要这个对象 我们需要把它变成json格式
- //手动转换吗?借助工具包 完成 对象与json的转换
- // {"name":"张三","age",19,"sex":"男"}
- String jsonString = JSON.toJSONString(user);
- System.out.println(jsonString);
- // {"age":19,"name":"张三","sex":"男"}
- }
-
-
- // list--json
- @Test
- public void list2Json(){
- ArrayList
list = new ArrayList<>(); -
- list.add(new User("张三",19,"男"));
- list.add(new User("李四",18,"女"));
-
- //把list--json
- String jsonString = JSON.toJSONString(list);
- System.out.println(jsonString);
- // [{"age":19,"name":"张三","sex":"男"},{"age":18,"name":"李四","sex":"女"}]
- }
-
- // map--json
- @Test
- public void map2Json(){
- Map
map = new HashMap<>(); -
- map.put("王宝强","贾乃亮");
- map.put("马金莲","李小鹿");
-
- // map转换成json格式
- String jsonString = JSON.toJSONString(map);
- System.out.println(jsonString);
- // {"王宝强":"贾乃亮","马金莲":"李小鹿"}
- }
-
- @Test
- public void map3Json(){
- Map
map = new HashMap<>(); - User user1 = new User("张三",19,"男");
- User user2 = new User("李四",18,"女");
-
- map.put("u001",user1);
- map.put("u002",user2);
-
- // map转换成json格式
- String jsonString = JSON.toJSONString(map);
- System.out.println(jsonString);
- // {"u002":{"age":18,"name":"李四","sex":"女"},"u001":{"age":19,"name":"张三","sex":"男"}}
- }
- }
JSON.toJSONString(对象) //返回 json 字符串
2.JSON字符串 转 对象
- package com.itheima.test;
-
- import com.alibaba.fastjson.JSON;
- import com.itheima.pojo.User;
- import org.junit.Test;
-
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
-
- /*
- !json个java对象的相互转换!
- java对象--json
- json--java对象
- 要求咱们的java对象 必须有setget方法
- 还需要导入jar包--json转换包
- 导入依赖之后
- 学习api
- java对象--json
- JSON.toJSONString(对象) 返回json文本
- json--java对象
- 对象的类型 parseObject(json字符串,对象的类型)
- User User.class
- List<对象类型> parseArray(json字符串,集合中对象的类型)
- List
User.class - */
-
- public class Json2Object {
-
- // json--javabean
- @Test
- public void javaObject2Json(){
-
- // {"age":19,"name":"张三","sex":"男"}
- String jsons = "{\"age\":19,\"name\":\"张三\",\"sex\":\"男\"}";
- //json变成 user类型对象
- //通过 解析方法 把一个json串解析成javabean对象
- User user = JSON.parseObject(jsons, User.class);
- System.out.println(user);
-
- }
-
-
- // json--list
- @Test
- public void list2Json(){
-
- //把json--list
- String json = "[{\"age\":19,\"name\":\"张三\",\"sex\":\"男\"},{\"age\":18,\"name\":\"李四\",\"sex\":\"女\"}]";
- // [{"age":19,"name":"张三","sex":"男"},{"age":18,"name":"李四","sex":"女"}]
-
- // List list = JSON.parseObject(json, List.class);
- // //注意 没有泛型说明 里面的对象按照object对象接受的
- // for (Object o : list) {
- // System.out.println((User)o);
- // }
-
- List
userList = JSON.parseArray(json, User.class); - for (User user : userList) {
- System.out.println(user);
- }
- }
-
- // json--map
- @Test
- public void map2Json(){
- String json = "{\"王宝强\":\"贾乃亮\",\"马金莲\":\"李小鹿\"}";
- // {"王宝强":"贾乃亮","马金莲":"李小鹿"}
- Map map = JSON.parseObject(json, Map.class);
- System.out.println(map);
- }
-
- @Test
- public void map3Json(){
- String json = "{\"u002\":{\"age\":18,\"name\":\"李四\",\"sex\":\"女\"},\"u001\":{\"age\":19,\"name\":\"张三\",\"sex\":\"男\"}}";
- // {"u002":{"age":18,"name":"李四","sex":"女"},"u001":{"age":19,"name":"张三","sex":"男"}}
-
- Map map = JSON.parseObject(json, Map.class);
- Object u002 = map.get("u002");
-
- System.out.println(map);
- }
- }
java对象---json格式数据怎么转换
String JSON.toJSONString(对象)方法 完成转换。
只不过我们对象 转换之后 是{} 单列集合数组转换之后[] map集合转换之后{}
json对象---java对象
JSON.parseObject(json文本,你要转成对象类型)
我们的基本javabean以及map集合适合这个转换,单列集合也可以使用
如果是单列集合 想转换成对应的元素javabean
需要使用
JSON.parseArray(json文本,集合中类型)