2017-04-12 73 views
0

我們如何轉換成JSON如下類型爲Java對象JSON來POJO convertions

{ 
    "complaint_Map": { 
     "1000067730": "3011351597604397", 
     "1000067730-06": "10582576134561065" 
    } 
} 

如果任何人有任何想法,這個告訴我們如何做到這一點。

+0

使用傑克遜或GSON –

+1

什麼你有沒有嘗試過?這個問題被「spring-boot」標記的原因是什麼? –

+0

,因爲在我的spring-boot項目中,我有要求將用戶基礎數據從RIAK KV存儲桶轉移到另一個服務器的另一個存儲桶的策略數據,這就是爲什麼,但這裏不需要spring-boot標籤! –

回答

0

與傑克遜

import com.fasterxml.jackson.databind.ObjectMapper; 

嘗試

ObjectMapper mapper = new ObjectMapper(); 
String jsonInString = "{\"complaint_Map\":{\"1000067730\":\"3011351597604397\",\"1000067730-06\":\"10582576134561065\"}}"; 
Map<String,Object> pojo = mapper.readValue(jsonInString, Map.class); 
System.out.println(((Map<String,Object>)pojo.get("complaint_Map")).get("1000067730")+""); 

將打印

3011351597604397 
0

在java中,你可以使用一個簡單的POJO從JSON轉換成/傑克遜庫。

維基百科:

傑克遜是一個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); 
    } 
} 
0

您可以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(); 
} 
0

如果您在使用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):

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