Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Json到pojo的转换_Java_Json_Spring Boot - Fatal编程技术网

Java Json到pojo的转换

Java Json到pojo的转换,java,json,spring-boot,Java,Json,Spring Boot,如何将以下类型的json转换为java对象 { "complaint_Map": { "1000067730": "3011351597604397", "1000067730-06": "10582576134561065" } } 如果有人对此有任何想法,请告诉我们是如何做到的。与杰克逊一起 import com.fasterxml.jackson.databind.ObjectMapper; 试一试 在java中,可以使用Jackson库

如何将以下类型的json转换为java对象

{
    "complaint_Map": {
        "1000067730": "3011351597604397",
        "1000067730-06": "10582576134561065"
    }
}
如果有人对此有任何想法,请告诉我们是如何做到的。

与杰克逊一起

import com.fasterxml.jackson.databind.ObjectMapper;
试一试


在java中,可以使用Jackson库将简单的POJO转换为JSON或从JSON转换为POJO

来自维基百科:

public class ReadWriteJackson {
    public static void main(String[] args) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        String jsonInput = 
          "{\"id\":0,\"firstName\":\"Robin\",\"lastName\":\"Wilson\"}";
        Person q = mapper.readValue(jsonInput, Person.class);
        System.out.println("Read and parsed Person from JSON: " + q);

        Person p = new Person("Roger", "Rabbit");
        System.out.print("Person object " + p + " as JSON = ");
        mapper.writeValue(System.out, p);
    }
}
Jackson是用于Java的高性能JSON处理器。它的开发人员赞扬了该库的快速、正确、轻量级和符合人体工程学特性的结合

以下是维基百科的一个例子:

public class ReadWriteJackson {
    public static void main(String[] args) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        String jsonInput = 
          "{\"id\":0,\"firstName\":\"Robin\",\"lastName\":\"Wilson\"}";
        Person q = mapper.readValue(jsonInput, Person.class);
        System.out.println("Read and parsed Person from JSON: " + q);

        Person p = new Person("Roger", "Rabbit");
        System.out.print("Person object " + p + " as JSON = ");
        mapper.writeValue(System.out, p);
    }
}

您可以使用来自jackson的ObjectMapper来完成

假设json定义了一个java对象, 然后可以通过

import org.codehaus.jackson.map.ObjectMapper;

YourObject mappingClassObject = new YourObject();
ObjectMapper mapper = new ObjectMapper(); 
try{
   mappingClassObject = mapper.readValue(yourJSON, YourObject.class);
}catch(Exception e){
  e.printStackTrace();
}

如果您需要使用
Jackson
库的解决方案,请点击这里

自定义类:

@JsonRootName("complaint_Map")
public class Complaint {
    private String firstKey;
    private String secondKey;

    @JsonProperty("1000067730")
    public String getFirstKey() {
        return firstKey;
    }
    @JsonProperty("1000067730")
    public void setFirstKey(String firstKey) {
        this.firstKey = firstKey;
    }

    @JsonProperty("1000067730-06")
    public String getSecondKey() {
        return secondKey;
    }

    @JsonProperty("1000067730-06")
    public void setSecondKey(String secondKey) {
        this.secondKey = secondKey;
    }

    @Override
    public String toString() {
        return "Complaint{" +
                "firstKey='" + firstKey + '\'' +
                ", secondKey='" + secondKey + '\'' +
                '}';
    }
}
以及测试方法:

String jsonString = "{\"complaint_Map\":{\"1000067730\":\"3011351597604397\",\"1000067730-06\":\"10582576134561065\"}}";
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
try {
    Complaint complaint = mapper.readValue(jsonString, Complaint.class);
    System.out.println(complaint);
} catch (Exception e) {
    e.printStackTrace();
}
我使用了以下版本(在
Maven pom
):


com.fasterxml.jackson.core
杰克逊数据绑定
2.4.1.3

使用jackson或GSON您尝试过什么?问题被标记为
spring boot
的原因是什么?因为在我的spring boot项目中,我需要将用户名基础数据移动到策略基础数据,从RIAK KV存储桶移动到另一台服务器的另一个存储桶,这就是为什么这里不需要spring boot标记!!!
String jsonString = "{\"complaint_Map\":{\"1000067730\":\"3011351597604397\",\"1000067730-06\":\"10582576134561065\"}}";
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
try {
    Complaint complaint = mapper.readValue(jsonString, Complaint.class);
    System.out.println(complaint);
} catch (Exception e) {
    e.printStackTrace();
}
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.4.1.3</version>
</dependency>