Artigo Diretório
-
- 1. string json
- 2. ferramenta de conversão json
- 2.2 Uso de Jackson
-
- 2.2.1 Composição de Jaskson
- 2.2.2 Classe ObjectMapper de Jackson 【***】
- 2.3 Caso
1. string json
JSON (JavaScript Object Notation, JS Object Notation) é um formato de troca de dados leve .
1.1 Recursos
-
É completamente independente do formato de texto da linguagem de programação para armazenar e representar dados.
-
A estrutura hierárquica concisa e clara torna JSON uma linguagem de troca de dados ideal.
-
É fácil para as pessoas lerem e escreverem, mas também é fácil para a máquina analisar e gerar, e melhora efetivamente a eficiência da transmissão da rede.
(A chave dos dados filho deve ser uma string e o valor não é limitado)
1.2 sintaxe de formato json
- Os dados JSON podem ser reconhecidos diretamente em JavaScript
- No código java, dados e json podem ser convertidos um no outro
2. ferramenta de conversão json
A ferramenta de conversão json é converter diretamente objetos java ou coleções em strings no formato json por meio de alguns pacotes jar empacotados em java.
2.1 Ferramentas de conversão comuns para json
2.2 Uso de Jackson
Porque é uma ferramenta de conversão json gratuita e de código aberto, e também é a ferramenta de conversão json padrão do springmvc
2.2.1 Composição de Jaskson
jackson-annotations
: É o pacote de anotação Jaskson, fornecendo função de anotação padrãojackson-core
: É o pacote principal e fornece APIs relacionadas com base na análise de " modo de fluxo ", incluindo JsonPaser e JsonGeneratorjackson-databind
: É um pacote de ligação de dados que fornece APIs relacionadas com base na análise de " ligação de objeto " (ObjectMapper) e APIs de análise de "modelo de árvore" (JsonNode)
2.2.2 Classe ObjectMapper de Jackson 【***】
A classe ObjectMapper é a classe principal da biblioteca Jackson e suas funções principais são:
- Realize a conversão de objetos java em formato de dados json (chamado de serialização )
- Realiza a conversão do formato de dados json em objeto java (chamado de desserialização )
- A classe pode ser usada no método ObjectMapper readValue para desserializar o conteúdo JSON de objetos Java.
- A classe pode ser usada Método writeValue do ObjectMapper A serialização do objeto Java é o formato de dados JSON.
2.3 Caso
- Importar pacotes jar - Importar pacotes jar no diretório WEB-INF e adicioná-los à Biblioteca
- Crie um objeto de usuário (atributos de classe de pacote Java geralmente são privados, portanto, métodos get / set são necessários, caso contrário, Jackson não pode lê-los)
public class User {
private String name;
private int age;
private String sex;
private String address;
//省略构造方法、getter/setter方法
}
2.3.1 Escreva uma classe de teste, teste o método writeValueAsString () da classe ObjectMapper e converta o formato de dados javabean para json
//测试对象序列化,将对象转换为json数据格式
public class TestObjectMapper {
//测试单个对象user转换为json数据格式
@Test
public void test01() throws JsonProcessingException {
//1、创建对象user
User user = new User("我是GF_浪夏一学 - 单个对象",21,"男","湖南");
//2、writeValueAsString()方法,将一个user对象转成json字符串
String userJson = new ObjectMapper().writeValueAsString(user);//将javabean转换为json数据格式
System.out.println(userJson);
}
//将一个对象数组转换为json数据格式
@Test
public void test02() throws JsonProcessingException {
//1、创建对象,加入集合中
User user1 = new User("我是集合user1",21,"男","湖南");
User user2 = new User("我是集合user2",20,"女","北京");
List<User> userList = new ArrayList<>();
userList.add(user1);
userList.add(user2);
//2、writeValueAsString()方法,将一个对象数组转换为json数据格式
String userListJson = new ObjectMapper().writeValueAsString(userList);
System.out.println(userListJson);
}
//将一个Map集合转成json字符串
@Test
public void test03() throws JsonProcessingException {
//1:创建对象
User user1 = new User("我是map集合的user1对象",21,"男","湖南");
User user2 = new User("我是map集合的user2对象",20,"女","北京");
//存入map
Map<String,User> map = new HashMap<>();
map.put("user1",user1);
map.put("user2",user2);
//2、writeValueAsString()方法,将一个Map集合转成json字符串
String json= new ObjectMapper().writeValueAsString(map);
System.out.println(json);
}
}
resultado da operação:
2.3.2. Teste o método readValue da classe ObjectMapper e converta o formato de dados json em um objeto javabean
public class TestObjectMapper {
//将一个json数据转换为user对象
@Test
public void test04() throws IOException {
//1:创建一个json对象
String jsonData = "{\"name\":\"我是GF_浪夏一学\",\"age\":21,\"sex\":\"男\",\"address\":\"湖南\"}";
//2、writeValueAsString()方法,将一个Map集合转成json字符串
User user = new ObjectMapper().readValue(jsonData, User.class);
System.out.println(user);//会输出user的toString()方法
}
}
resultado da operação:
Converter o formato de dados json em lista
//测试json数据转集合list
@Test
public void test05() throws IOException {
String json="[{\"name\":\"我是GF_浪夏一学\",\"age\":21,\"sex\":\"男\",\"address\":\"湖南\"},{\"name\":\"java小皮孩\",\"age\":21,\"sex\":\"男\",\"address\":\"深圳\"}]";
//
ObjectMapper objectMapper = new ObjectMapper();
List<User> userList = objectMapper.readValue(json,new TypeReference<List<User>>(){
});//将json转成对象 参1 json数据 参2 new TypeReference<>(){}
System.out.println(userList);
}
resultado da operação: