Visão geral do json - o uso de Jackson, a conversão entre objetos bean (listas de listas) e dados json (serialização e desserialização)

1. string json

  JSON (JavaScript Object Notation, JS Object Notation) é um formato de troca de dados leve .

1.1 Recursos

  1. É completamente independente do formato de texto da linguagem de programação para armazenar e representar dados.

  2. A estrutura hierárquica concisa e clara torna JSON uma linguagem de troca de dados ideal.

  3. É 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

  1. Os dados JSON podem ser reconhecidos diretamente em JavaScript
  2. 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

Insira a descrição da imagem aqui

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

Insira a descrição da imagem aqui

  • jackson-annotations: É o pacote de anotação Jaskson, fornecendo função de anotação padrão
  • jackson-core: É o pacote principal e fornece APIs relacionadas com base na análise de " modo de fluxo ", incluindo JsonPaser e JsonGenerator
  • jackson-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:

  1. Realize a conversão de objetos java em formato de dados json (chamado de serialização )
  2. 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

  1. Importar pacotes jar - Importar pacotes jar no diretório WEB-INF e adicioná-los à Biblioteca
    Insira a descrição da imagem aqui
  2. 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:

Insira a descrição da imagem aqui

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:
Insira a descrição da imagem aqui

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:
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/qq_40542534/article/details/108669100
Recomendado
Clasificación