一、json介绍
JSON 是一种轻量级易与解析的数据格式,它按照 js 的对象和数组的字面量格式来书写。
XML 格式数据极其的冗长。因为每个离散的数据片段需要大量的 XML 结构,所以有效的数据的比例非常低。XML 语法还有轻微的模糊。还有,解析 XML 是非常占程序员的精力的。你需要提前了解详细的结构和确切地知道如何解开这个结构,然后细心地将他们写入 js 对象中。
二、json是什么
JSON:JavaScript 对象表示法(JavaScript Object Notation), 一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。用来描述数据结构,它是基于纯文本的数据格式,是一种轻量级的数据交换格式。广泛应用于服务端与客户端的数据交互。
JSON 是存储和交换文本信息的语法,类似 XML。
JSON 采用完全独立于语言的文本格式,也使用了类似于 C 语言家族的习惯(包括 C, C++, C#,Java, JavaScript, Perl, Python…)这些特性使 JSON 成为理想的数据交换语言。
JSON 是一个新的人类可读(human readable)的数据格式,在过去几年中已变得非常受欢迎,尤其是在 web 开发中。
三、语法格式(具体如下: http://www.json.org/)
jquery 1.4 以后对 json 格式变严格了,也就是说必须要这种格式的{"键":"值","键":"值 "};像原来
的{键:值,键:值}和{'键':'值','键':'值'}这种都是错误的,不合标准,所以 jquery 返回 error 如"
{"success":true,"msg":"success"}",如果说是 boolean 类型,则不用加引号,其它的键/值都需要加引
号。
Json 以 key-value 的形式存储数据
Key 的取值 为 String 类型;
Value 的取值为 String,boolean,Number,数组,Object,null;
Json 串以{开始,以}结尾;
Json 串中数组是以[开始,以]结尾;
Json 串中Object是以{开始,以}结尾;
代码示例:
1、基本类型
{
"name": "张三",
"age": 18,
"sex": true
}2、数组类型
[
{
"name": "张三",
"age": 18,
"sex": true
},
{
"name": "李四",
"age": 19,
"sex": false
}
]3、对象嵌套
{
"name": "teacher",
"computer": {
"CPU":"intel7,
"disk": "512G"
},
"students": [
{
"name": "张三",
"age": 18,
"sex": true
},
{
"name": "李四",
"age": 19,
"sex": false
}
]
}四、解析方式
1、使用GSON处理
首先需要下载jar包
下载网址:https://mvnrepository.com,然后搜索gson


a、user对象转json字符串
//1.创建对象
User user = new User("小蔡","西马杭",true);
//2.创建Gson对象
Gson gson = new Gson();
//3.将user转换为json字符串
String json = gson.toJson(user);b、json字符串转user对象
//1.创建json对象
String json01 = "{\"name\":\"小蔡\",\"address\":\"西马杭\",\"sex\":true}";
//2.创建Gson对象
Gson gson01 = new Gson();
//3.将json字符串转换为user对象
User user01 = gson01.fromJson(json01,User.class);
System.out.println(user01);c、List对象转json字符串
//1.创建List<User>集合
List<User> userList = new ArrayList<>();
//2.创建User 添加userList中
userList.add(new User("小蔡大哥","西马杭",true));
userList.add(new User("辣条哥","沟",true));
//3创建gson对象
Gson gson = new Gson();
//4.将list对象转换为json字符串
String json = gson.toJson(userList);
System.out.println(json);d、json字符串转List对象
//1.创建json字符串
String json01 = "[{\"name\":\"小蔡大哥\",\"address\":\"西马杭\",\"sex\":true},{\"name\":\"辣条哥\",\"address\":\"沟\",\"sex\":true}]";
//2.创建gson对象
Gson gson01 = new Gson();
//3.json转List
List<User> userList01 = gson01.fromJson(json01, new TypeToken<List<User>>(){}.getType());
//遍历user
for(User user : userList01) {
System.out.println(user);
}e、Map对象转json字符串
//1、创建Map集合
Map<String,Object> map = new HashMap<>();
map.put("id","008");
map.put("user",new User("小蔡大哥","西马坑",true));
//2、创建Gson对象
Gson gson = new Gson();
//Map转json
String json = gson.toJson(map);
System.out.println(json);f、json字符串转Map对象
//1.创建json字符串
String json01 = "{\"jd\":\"008\",\"user\":{\"name\":\"小蔡大哥\",\"address\":\"西马杭\",\"sex\":true}}";
//2.创建Gson对象
Gson gson01 = new Gson();
//3.json转map
Map<String,Object> map01 = gson01.fromJson(json01,new TypeToken<Map<String,Object>>(){}.getType());
for(String key:map01.keySet()) {
System.out.println(key+":"+map01.get(key));
}
















