2016-02-19 70 views
0

我們正在使用Google GSON將JSON數據反序列化爲Java對象。請參閱下面的示例JSON數據和相應的POJO類。我能夠反序列化「姓名」和「電話號碼」字段。但對於「deparments」字段,我看到Null。你能幫我嗎?我怎樣才能反序列「deparments」字段?Google GSON:將JSON數據反序列化爲Java

我的JSON:

{ 
    "name": "customer", 
    "phoneNumber": "000000000", 
    "deparments": "xyz,abc,wyz,djkf, iii" 
} 

類:

public class CustomerInfo 
{ 
    private String name; 
    private String phoneNumber; 
    private String deparments; 

    // getters and setters 
} 

CustomerDeserializer.java:

... 
Gson gson = new Gson(); 
CustomerInfo customerInfo = gson.fromJson(reader, CustomerInfo.class); 
+0

也許Gson拼寫檢查程序刪除了該屬性 – wero

+0

您可以粘貼實際的代碼嗎?這顯然不是因爲拼寫錯誤(例如「Privaet」)和案例不一致,因此無法診斷實際問題。 – Adamski

+1

您的代碼適用於我,GSON:2.2.4 – Taky

回答

1

重新檢查JSON源。我認爲你只是有一些關鍵的對象:depar t ments,而不是deparments

反正接下來的代碼工作對我來說:

public class CustomerInfo 
{ 
    private String name; 
    private String phoneNumber; 
    private String deparments; 

    // getters and setters 
    public String getName(){ 
     return name; 
    } 
    public void setName(String name){ 
     this.name = name; 
    } 
    public String getPhoneNumber(){ 
     return phoneNumber; 
    } 
    public void setPhoneNumber(String phoneNumber){ 
     this.phoneNumber = phoneNumber; 
    } 
    public String getDeparments() { 
     return deparments; 
    } 
    public void setDeparments(String deparments) { 
     this.deparments = deparments; 
    } 

    @Override 
    public String toString() { 
     return "CustomerInfo{" + 
       "name='" + name + '\'' + 
       ", phoneNumber='" + phoneNumber + '\'' + 
       ", deparments='" + deparments + '\'' + 
       '}'; 
    } 
} 

@Test 
public void desJson(){ 
    String json = "{\n" + 
      " \"name\": \"customer\",\n" + 
      " \"phoneNumber\": \"000000000\",\n" + 
      " \"deparments\": \"xyz,abc,wyz,djkf, iii\"\n" + 
      "}"; 
    Gson gson = new Gson(); 
    CustomerInfo customerInfo = gson.fromJson(json, CustomerInfo.class); 
    System.out.println(customerInfo); 
} 

輸出爲:

CustomerInfo {名= '客戶',phoneNumber的= '000000000', 部門工作人員='XYZ,ABC, WYZ,djkf,III'}

0

複製和粘貼如下

這個代碼

和反序列化像下面

CustomerInfo customerInfo = new Gson().fromJson(jsonString, CustomerInfo.class); 

希望這段代碼可以幫助你。