Reputation: 3816
We are using Google GSON for deserializing JSON data to Java object. See below sample JSON data and corresponding POJO class. I am able to deserialize "name" and "phoneNumber" fields. But for "deparments" field, I see Null. Can you please help me how can I deserialize "deparments" field?
My JSON:
{
"name": "customer",
"phoneNumber": "000000000",
"deparments": "xyz,abc,wyz,djkf, iii"
}
The class:
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);
Upvotes: 0
Views: 175
Reputation: 969
Copy and Paste this code below
public class CustomerInfo {
@SerializedName("name")
private String name;
@SerializedName("phoneNumber")
private String phoneNumber;
@SerializedName("deparments")
private String deparments;
@Override
public String toString() {
return new Gson().toJson(this, CustomerInfo.class);
}
}
and Deserialize it like the code below
CustomerInfo customerInfo = new Gson().fromJson(jsonString, CustomerInfo.class);
Hope this helps you.
Upvotes: 0
Reputation: 5344
Recheck your JSON source. I think you just have some objects with key: departments, instead of deparments.
Anyway next code works for me:
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);
}
the output is:
CustomerInfo{name='customer', phoneNumber='000000000', deparments='xyz,abc,wyz,djkf, iii'}
Upvotes: 1