String de protocolo Json
Visão geral de JSON
Módulo de back-end: JAVA
1.八种基本数据类型+String类型,直接交互
2.对象类型或集合类型
Módulo front-end: JavaScript
String de protocolo JSON
1.把Java中的对象类型或者集合类型转换为JSON
2.把JSON协议串转换回Java中的对象回集合
A função do JSON
O meio de transmissão de dados em sistemas heterogêneos
Sistema heterogêneo
Módulos ou sistemas desenvolvidos em diferentes linguagens
java cada formato de conversão json
Objeto
@Test
public void test1(){
Address address = new Address("BeiJing", "长安街");
User user = new User("James", "123456", "男", new Date(), address);
String s = JSON.toJSONString(user);
System.out.println(s);
}
{"address":{"city":"BeiJing","street":"长安街"},
"birthday":1575899645699,"password":"123456","sex":"男","username":"James"}
Use "" para atributos, "" para strings, sem necessidade de números, os objetos são incluídos com {}, se os objetos estiverem aninhados, os nomes dos atributos ainda usam "", os valores são iguais aos dos objetos {}. O
formato de data acima é um formato de número inteiro longo e precisa ser usado Comentário @JSONField (format == “aaaa-MM-dd”);
{"endereço": {"cidade": "BeiJing", "rua": "Changan Street"}, "aniversário": "09-12-2019", "Senha": "123456", "sexo": "男", "nome de usuário": "James"}
Variedade
@Test
public void test2(){
String [] colors ={
"赤","橙","红","绿","蓝","靛","紫"} ;
tring s = JSON.toJSONString(colors);
System.out.println(s);
}
O resultado é o seguinte: a matriz usa [] para conter
["赤","橙","红","绿","蓝","靛","紫"]
coleção de lista
@Test
public void test3(){
ArrayList<User> users = new ArrayList<User>();
User user1 = new User("James", "123456", "男", new Date(), null);
User user2 = new User("James", "123456", "男", new Date(), null);
User user3 = new User("James", "123456", "男", new Date(), null);
users.add(user1);
users.add(user2);
users.add(user3);
String s = JSON.toJSONString(users);
System.out.println(s);
}
Ambos os lados da lista também estão incluídos com [], os objetos dentro são incluídos com {}, usados e divididos no meio, cada atributo é decorado com "" e o valor é separado por:
[{"birthday":"2019-12-09","password":"123456","sex":"男","username":"James"},
{"birthday":"2019-12-09","password":"123456","sex":"男","username":"James"},
{"birthday":"2019-12-09","password":"123456","sex":"男","username":"James"}]
coleção definida
@Test
public void test4(){
HashSet<User> users = new HashSet<>();
User user1 = new User("James", "123456", "男", new Date(), null);
User user2 = new User("James", "123456", "男", new Date(), null);
User user3 = new User("James", "123456", "男", new Date(), null);
users.add(user1);
users.add(user2);
users.add(user3);
String s = JSON.toJSONString(users);
System.out.println(s);
}
Definir coleção para string de protocolo JSON é igual ao resultado da coleção de lista
[{"birthday":"2019-12-09","password":"123456","sex":"男","username":"James"},
{"birthday":"2019-12-09","password":"123456","sex":"男","username":"James"},
{"birthday":"2019-12-09","password":"123456","sex":"男","username":"James"}]
coleção de mapas
@Test
public void test5(){
HashMap<String, String> map = new HashMap<>();
map.put("1","赤");
map.put("2","橙");
map.put("3","红");
map.put("4","绿");
map.put("5","蓝");
map.put("6","靛");
map.put("7","紫");
map.put("8","黑");
String s = JSON.toJSONString(map);
System.out.println(s);
}
Uma coleção de mapas simples, a string do protocolo JSON é consistente com o objeto, e a chave e o valor são separados por:
{"1":"赤","2":"橙","3":"红","4":"绿","5":"蓝","6":"靛","7":"紫","8":"黑"}
O valor na coleção de mapas é um objeto
@Test
public void test6(){
HashMap<String, User> users = new HashMap<>();
User user1 = new User("James", "123456", "男", new Date(), null);
User user2 = new User("James", "123456", "男", new Date(), null);
User user3 = new User("James", "123456", "男", new Date(), null);
users.put("1",user1);
users.put("2",user2);
users.put("3",user3);
String s = JSON.toJSONString(users);
System.out.println(s);
}
A coleção de mapas é como objetos, a mais externa é {}
{"1":{"birthday":"2019-12-09","password":"123456","sex":"男","username":"James"},
"2":{"birthday":"2019-12-09","password":"123456","sex":"男","username":"James"},
"3":{"birthday":"2019-12-09","password":"123456","sex":"男","username":"James"}}
@JSONField
@JSONField(name = "name") //指定转换为JSON协议串之后的属性名
@JSONField(serialize = false) //排除该属性不参与JSON协议串的转换
@JSONField(format = "yyyy-MM-dd") //指定日期的格式
Conversão JSON Java
Objeto
//JSON协议串 转 对象
@Test
public void test1(){
User user = new User(1, "张三", "123456", 18);
String jsonString = JSON.toJSONString(user);
System.out.println(jsonString);
//json协议串转换会User对象
User user1 = JSON.parseObject(jsonString, User.class);
System.out.println(user1);
}
Coleção de lista
//JSON协议串转 LIst集合
@Test
public void test2(){
//创建List集合
List<User> users = new ArrayList<User>();
//创建User对象
User user = new User(1, "小黑", "123456", 18);
User user2 = new User(2, "小白", "123456", 28);
User user3 = new User(3, "小绿", "123456", 18);
users.add(user);
users.add(user2);
users.add(user3);
//List转json协议串
String jsonString = JSON.toJSONString(users);
System.out.println(jsonString);
//json协议串转换会LIst集合
List<User> list = JSON.parseArray(jsonString, User.class);
for (User user1 : list) {
System.out.println(user1);
}
}
Conjunto de coleção
//JSON协议串 转Set集合
@Test
public void test3(){
//创建List集合
Set<User> users=new HashSet<User>();
//创建User对象
User user = new User(1, "小黑", "123456", 18);
User user2 = new User(2, "小白", "123456", 28);
User user3 = new User(3, "小绿", "123456", 18);
users.add(user);
users.add(user2);
users.add(user3);
//Set转json协议串
String jsonString = JSON.toJSONString(users);
System.out.println(jsonString);
//json协议串转换会Set集合
Set set = JSON.parseObject(jsonString, Set.class);
for (Object o : set) {
System.out.println(o);
}
}
Coleção de mapas
//JSON协议串转Map集合
@Test
public void test4(){
Map<String, String> maps = new HashMap<String, String>();
maps.put("1", "小花");
maps.put("2", "小王");
maps.put("3", "小红");
//Map集合转JSON协议串
String jsonString = JSON.toJSONString(maps);
System.out.println(jsonString);
//JSON协议串 转Map集合
Map map = JSON.parseObject(jsonString, Map.class);
Set set = map.keySet();
for (Object key : set) {
System.out.println(key+"==========="+map.get(key));
}
}
Expandir
Além de json, há GSON, FastJson, Jackson