Directorio de artículos
-
- 1. cadena json
- 2. herramienta de conversión json
- 2.2 Uso de Jackson
-
- 2.2.1 Composición de Jaskson
- 2.2.2 Clase ObjectMapper de Jackson 【***】
- 2.3 Caso
1. cadena json
JSON (JavaScript Object Notation, JS Object Notation) es un formato de intercambio de datos ligero .
1.1 Características
-
Es completamente independiente del formato de texto del lenguaje de programación para almacenar y representar datos.
-
La estructura jerárquica concisa y clara hace que JSON sea un lenguaje de intercambio de datos ideal.
-
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
- Los datos JSON se pueden reconocer directamente en JavaScript
- 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
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
jackson-annotations
: Es el paquete de anotaciones de Jaskson, que proporciona una función de anotación estándarjackson-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:
- Realice la conversión de objetos java al formato de datos json (llamado serialización )
- 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
- Importar paquetes jar: importar paquetes jar en el directorio WEB-INF y agregarlos a la biblioteca
- 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:
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:
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: