JSON在线解析及格式化验证 - JSON.cn
这是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文本,集合中类型)