我们使用Google GSON反序列化JSON数据到Java对象。请参阅下面的示例JSON数据和相应的POJO类。我能够反序列化“name”和“phoneNumber”字段。但对于“Departments”字段,我看到NULL。您能帮助我如何反序列化“Departments”字段吗?
我的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);
复制并粘贴下面的代码
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);
}
}
并像下面的代码一样反序列化它
CustomerInfo customerInfo = new Gson().fromJson(jsonString, CustomerInfo.class);
希望这对你有帮助。
重新检查您的JSON源代码。我想你只是有一些对象的关键:部门,而不是离开。
无论如何,下一段代码对我有效:
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{name='customer',PhoneNumber='000000000',Departments='XYZ,abc,wyz,djkf,III'}
问题内容: 我正在使用大猩猩 websocket,并且正在计划使用json进行序列化/反序列化。 假设我有这样的结构来接收传入的消息: 和 大猩猩提供接收传入的消息。传入的消息可以是Foo或Bar,但是我不能使用和收听其他消息,这很混乱。我想要像javascript 这样的东西。如果接收到Foo,则如何处理传入消息,然后将其存储到结构中;如果接收到Bar,则将其存储到结构中? 我正在解决方案正在使
我是一个新手,正在尝试编写一个简单的应用程序,从大学校中提取一些学校数据。组织。json数据如下所示: 我的结构如下所示: 当我运行代码时,我得到“json:无法将对象解组为[]main.SchoolStruct类型的Go值” 我正在使用gopencils库来提出我的请求,并成功地将其用于非常简单的请求。你知道我可能做错了什么吗?
我很难将JSON反序列化到下面示例中实现基本接口的一些类ChildA、ChildB等。 异常是:com.fasterxml.jackson.databind.JsonMappingExc0019:意外令牌(END_OBJECT),预期FIELD_NAME:缺少包含类型id的属性type(对于类Basic) 预期的JSON如下所示: 没有在所有类型对象中显示的属性,因此它们完全不同。但正如您在rea
我需要将下面两个foramt反序列化为单个代码中的 嵌套异常是org.springframework.http.converter.httpmessageNotreadableException:JSON解析错误:无法反序列化字符串类型的值“2020-04-23t10:51:24.238+01:00”:com.fasterxml.jackson.databind.exc.invalidformat
问题内容: 我很好奇序列化和反序列化的方式。我使用关键字“ json”和“ tuple”进行搜索,但找不到所需的内容。 问题答案: 我通过和Json.net进行测试,测试代码如下。结果显示可序列化和可反序列化。因此,我可以在应用程序中使用它们。 测试代码 注释 在将序列化到字符串{“项目1”:“一”,“项目2”:“嘻嘻”,“项目3”:真正},并且它可以被反序列化回类型。
我有一个简单的问题,假设我有这个json 以这种方式映射: 我想知道是否可以通过使用一些自定义setter/注释或其他东西在内部对象中保存一个外部字段: PS:由于json的复杂性,使用自定义反序列化是我最后的选择