json descripción general: el uso de Jackson, la conversión entre objetos bean (listas de listas) y datos json (serialización y deserialización)

1. cadena json

  JSON (JavaScript Object Notation, JS Object Notation) es un formato de intercambio de datos ligero .

1.1 Características

  1. Es completamente independiente del formato de texto del lenguaje de programación para almacenar y representar datos.

  2. La estructura jerárquica concisa y clara hace que JSON sea un lenguaje de intercambio de datos ideal.

  3. Es fácil de leer y escribir para las personas, pero también fácil de analizar y generar para la máquina, y mejora de manera efectiva la eficiencia de la transmisión de red.
    (La clave de los datos del hijo debe ser una cadena y el valor no está limitado)

1.2 sintaxis del formato json

  1. Los datos JSON se pueden reconocer directamente en JavaScript
  2. En el código java, los datos y json se pueden convertir entre sí

2. herramienta de conversión json

  La herramienta de conversión json sirve para convertir directamente objetos o colecciones java en cadenas de formato json a través de algunos paquetes jar empaquetados en java.

2.1 Herramientas de conversión comunes para json

Inserte la descripción de la imagen aquí

2.2 Uso de Jackson

  Porque es una herramienta de conversión json gratuita y de código abierto, y también es la herramienta de conversión json predeterminada de springmvc

2.2.1 Composición de Jaskson

Inserte la descripción de la imagen aquí

  • jackson-annotations: Es el paquete de anotaciones de Jaskson, que proporciona una función de anotación estándar
  • jackson-core: Es el paquete principal y proporciona API relacionadas basadas en análisis de " modo de transmisión ", incluidos JsonPaser y JsonGenerator.
  • jackson-databind: Es un paquete de enlace de datos que proporciona API relacionadas basadas en análisis de " enlace de objetos " (ObjectMapper) y API de análisis de "modelo de árbol" (JsonNode).

2.2.2 Clase ObjectMapper de Jackson 【***】

  La clase ObjectMapper es la clase principal de la biblioteca Jackson, y sus funciones principales son:

  1. Realice la conversión de objetos java al formato de datos json (llamado serialización )
  2. Realice la conversión del formato de datos json a un objeto java (llamado deserialización )
  • Se puede utilizar la clase ObjectMapper método readValue Contenido JSON deserializar objetos Java.
  • Se puede utilizar la clase ObjectMapper método writeValue La serialización de objetos Java es formato de datos JSON.

2.3 Caso

  1. Importar paquetes jar: importar paquetes jar en el directorio WEB-INF y agregarlos a la biblioteca
    Inserte la descripción de la imagen aquí
  2. Cree un objeto de usuario (los atributos de clase de paquete Java son generalmente privados, por lo que se requieren métodos get / set, de lo contrario Jackson no puede leerlos)
public class User {
    
    
    private String name;
    private int age;
    private String sex;
    private String address;
	//省略构造方法、getter/setter方法
}

2.3.1 Escriba una clase de prueba, pruebe el método writeValueAsString () de la clase ObjectMapper y convierta javabean a formato de datos 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 de la operación:

Inserte la descripción de la imagen aquí

2.3.2. Pruebe el método readValue de la clase ObjectMapper y convierta el formato de datos json en un 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 de la operación:
Inserte la descripción de la imagen aquí

Convierta el formato de datos json en una 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 de la operación:
Inserte la descripción de la imagen aquí

Supongo que te gusta

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