我在尝试将JSON解组到对象中时遇到GSON错误。错误( 应为BEGIN_OBJECT,但在第3行第22列处为STRING )指向下面输入的第3行。
我是否相对于Bean正确映射了JSON?
import javax.xml.bind.JAXBElement;
public class BusinessPartnerCreate {
protected JAXBElement<String> partnerType;
protected Person person;
protected Company company;
protected String email;
protected String phone;
protected AddressData addressData;
protected AddressClean addressClean;
protected String city;
protected String state;
protected String zipCode;
protected JAXBElement<String> externalId;
}
我输入的JSON看起来是这样的:
{
"business-partner-create": {
"partner-type": "1",
"person": {
"firstName": "Dirk",
"lastName": "Wintermill",
"title": ""
},
"email": "kirk@yahoo.com",
"phone": "219-385-2946",
"addressClean": {
"house-number": "10218",
"street-name": "Park",
"street-abbr": "Rd"
},
"city": "Somerset",
"state": "NJ",
"zip-code": "01955"
}
}
不,您没有正确映射它,因为您的json对象不是BusinessPartnerCreate
,它包含BusinessPartnerCreate
。
你可以创建一个类只是为了封装你BusinessPartnerCreate
,但它是清洁反序列化容器的jsonObject
使用
JsonParser parser = new JsonParser();
JsonObject obj = parser.parse(json).getAsJsonObject();
然后使用解析有趣的内容
BusinessPartnerCreate bpc = gson.fromJson(obj.get("business-partner-create"), BusinessPartnerCreate.class);
并且我建议您添加注释以确保partnerType
字段的正确映射:
@SerializedName "partner-type"
protected JAXBElement<String> partnerType;
(和类似的邮政编码)
问题内容: 我在列表中仅收到一个项目时收到此错误。我在服务器端REST Web服务中使用Jersey,当List返回一个元素并且当我得到它时,我仅收到错误,但是当它包含多个元素时,它可以正常工作,这就是我的工作方式它: 为什么Jersey不发送包含一个项目的列表?这是球衣的虫子吗?有没有办法使它始终序列化为数组? 当Web服务返回0元素时,这是我的JSON数据: 当Web服务返回1元素时,这是我的
我的Retrofit2调用出现以下异常: 学分类别:
我将请求映射到类,如下所示: 有人能解释为什么我在请求中的数组没有与类A中的数组映射吗?
我试图使用gson解析下面的json字符串,并且我得到了这个异常。 异常很明显,它期待一个对象(可能是Datapoint),但它遇到了一个数组。我确信是我的模型类导致了这个问题,但是我不明白我的模型类应该是什么样子才能解析json而不会失败。
问题内容: 我正在尝试将内容反序列化为自定义类型。 这段代码 引发跟随异常 为什么Gson无法将我的JSON文本正确转换为我的POJO类型? 问题答案: 作为异常消息状态 反序列化时,Gson期望使用JSON对象,但发现了一个JSON数组。由于无法从一种转换为另一种,因此引发了此异常。 此处描述JSON格式。简而言之,它定义了以下类型:对象,数组,字符串,数字和null,以及布尔值和。 在Gson
我正面临一个关于GSON json到Java的问题。我在这里查了很多帖子,但我找不到我的问题的解决方案。所以我在这里列出我的问题。谢谢! 以下是我的Json数据 非常非常感谢!!