下面是我使用jackson转换为pojo的json响应-
{
paymentType": [
{
"Monthly": ["Monthly", "Monthly"],
"Prepaid": ["Prepaid", "Prepaid"]
},
""
]
}
代码:
String rspString = "{\"paymentType\": [{\"Monthly\": [\"Monthly\",\"Monthly\"],\"Prepaid\": [\"Prepaid\",\"Prepaid\"]},\"\"]}";
JsonUtil jsonUtil = new JsonUtil();
PaymentTypeResponse PaymentTypeRsp = new PaymentTypeResponse();
PaymentTypeRsp = (PaymentTypeResponse) jsonUtil.Json2Object(rspString, PaymentTypeRsp);
System.out.println(PaymentTypeRsp.getPaymentType().size());
我收到以下例外:
线程“main”com . faster XML . Jackson . databind . jsonmappingexception中出现异常:无法从字符串值(“”)实例化类型为[simple type,class com . test . sample . paymenttyperpons]的值;没有单字符串构造函数/工厂方法
响应中有一个空白值,如何在转换为pojo时处理这些值?
同样,如果null存在,如何处理这种情况?
任何指示将不胜感激。
提前谢谢。
这个类是这样的:
public class PaymentType
{
@JsonProperty("Monthly")
public List<String> monthly;
@JsonProperty("Prepaid")
public List<String> prepaid;
//getter and setters
}
public PaymentTypeResponse
{
@JsonProperty("paymentType")
public List<PaymentType> paymentType;
//setters and Getters
}
根据pojo类,您的json不正确。在您的json中,“paymentType”数组中的第三个元素是一个空字符串,它应该是一个数组或为空。
从这里更改您的 json -
{
"paymentType": [{
"Monthly": ["Monthly", "Monthly"],
"Prepaid": ["Prepaid", "Prepaid"]
}, ""]
}
到这个-
{
"paymentType": [{
"Monthly": ["Monthly", "Monthly"],
"Prepaid": ["Prepaid", "Prepaid"]
}]
}
Json 字符串 -
String rspString = "{\"paymentType\": [{\"Monthly\": [\"Monthly\",\"Monthly\"],\"Prepaid\": [\"Prepaid\",\"Prepaid\"]},null]}";
或者这个——
{
"paymentType": [{
"Monthly": ["Monthly", "Monthly"],
"Prepaid": ["Prepaid", "Prepaid"]
}, null]
}
Json 字符串 -
String rspString = "{\"paymentType\": [{\"Monthly\": [\"Monthly\",\"Monthly\"],\"Prepaid\": [\"Prepaid\",\"Prepaid\"]}]}";
如果您只收到null
或空字符串,而不是正确表示您的PaymentType
类的JSON对象,那么在ObjectMapper
中设置以下反序列化功能就足够了:
mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
现在,空字符串将被强制为null
,您将不再有这个问题。
更通用的方法(虽然处理起来更复杂)是将接受String
参数的构造函数添加到PaymentType
class:
public PaymentType() {
}
public PaymentType(String json) {
// parse the json string here and initialize members
}
在接收 String
参数的构造函数中,可以根据需要分析字符串。
注意,您还需要添加无参数构造函数,以便Jackson可以从有效的JSON反序列化。
我正在使用jackson将jason响应转换为pojo列表。下面是我得到的响应。 我正在将其转换为Pojo列表。下面是我的波乔。 一切正常。但是我想删除要转换为pojo的值,该值的代码为空值。即“代码”:”或“代码”:空 我正在使用下面的杰克逊代码将json转换为pojo。 使用下面的代码让json反对。 任何指示将不胜感激。 提前感谢。
问题内容: 我需要将INT数据类型的列ID转换为空字符串[‘’]。我不应该修改源列的数据类型,而需要在另一个表的转换中对其进行转换。ID列为“ nullable”,因为其中包含null。这是我的代码。 这将返回: 当我修改我的CASE语句时,它如下: 它返回: 问题答案: 这是你想要的吗? 您必须将整个结果列变成单个列。如果要使用空白值,则类型为某种字符串。 在您的示例中,意味着的结果是整数,这就
我想将以下字符串转换为对象: 要将其转换为对象,我创建了以下类: 我使用Jackson库转换到。以下是我如何使用杰克逊转换: 问题是,在转换上面的中User对象始终是空的。我做错了什么? 提前谢谢。
问题内容: 我有以下字符串: 如何使用Google / GSON将其转换为Java POJO? 问题答案: 通过使用http://www.jsonschema2pojo.org/或通过在Studio中添加插件(https://github.com/Hexara/Json2Pojo)生成POJO 现在添加依赖项: 将您的json或字符串转换为POJO
我正在使用以下方法将resultset转换为JSON,并试图根据下面描述的场景找出如何处理值: 当我在Oracle SQL developer中运行以下SQL查询(在下面的代码中使用)时: 中选择SQLQUERY,得到以下结果: 如上所述,对于由上述SQL查询返回的上述数据,下面的Java代码将其转换为以下JSON: 因此,基本上,它没有在上面的雇员计数的JSON响应中显示列名,因为它是。如何确保
问题内容: 有什么方法可以将null转换为Integer。null实际上是一个字符串,我在我的服务层中传递该字符串,将其接受为整数。因此,每当我尝试将null字符串强制转换为Integer时,都会引发异常。但是我必须将null转换为Integer。 问题答案: 您 不能 从String强制转换为Integer。但是,如果您尝试将字符串转换为整数,并且必须提供处理字符串的实现,请查看以下代码片段: