微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

json字符串 转java复杂对象

在Java中,经常需要将JSON字符串转换为Java对象,以便于进行处理和操作。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它能够很好地表示复杂的数据结构。Java中可以使用Jackson库进行JSON与Java对象之间的相互转换。

json字符串 转java复杂对象

首先需要导入Jackson库:


<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.11.3</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.3</version>
</dependency>

下面演示如何将JSON字符串转换为Java对象。


String json = "{\"name\":\"Tom\",\"age\":20,\"address\":{\"city\":\"Shanghai\",\"street\":\"Fuzhou Road\"}}";
ObjectMapper mapper = new ObjectMapper();
try {
    // 将JSON字符串转换为Person对象
    Person person = mapper.readValue(json,Person.class);
    System.out.println(person.getName());
} catch (JsonProcessingException e) {
    e.printstacktrace();
}

其中,Person是一个包含了name、age和address三个属性java类。在转换时,使用ObjectMapper对象的readValue()方法,第一个参数为待转换的JSON字符串,第二个参数为转换后的java类型。

为了能够正确地进行转换,需要保证JSON字符串中的属性名和对应java类中的属性名一致。如果属性名不一致,可以使用@JsonProperty注解来指定属性名。


public class Person {
    @JsonProperty("name")
    private String uname;
    private int age;
    private Address address;
    ...
}

除了将JSON字符串转换为Java对象外,Jackson同样支持将Java对象转换为JSON字符串。使用ObjectMapper对象的writeValueAsstring()方法即可将Java对象转换为JSON字符串。


Person person = new Person("Tom",20,new Address("Shanghai","Fuzhou Road"));
ObjectMapper mapper = new ObjectMapper();
try {
    // 将Person对象转换为JSON字符串
    String json = mapper.writeValueAsstring(person);
    System.out.println(json);
} catch (JsonProcessingException e) {
    e.printstacktrace();
}

以上就是使用Jackson库进行JSON字符串与Java对象之间转换的方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐