我有一个JSON响应,看起来像这样:
{
"id": "value",
"screen": {
"name": "Name",
"properties": {
"message": {
"type": "string",
"value": {
"rawResponse": {
"_links": {
"self": {
"href": "link"
}
},
"_embedded": {},
"id": "id"
}
}
}
}
},
"interactionId": "id"
}
有了这个杰克逊模型:
package com.package;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.List;
import java.util.Map;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@Data
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PolicyStartResponse {
private String id;
private Screen screen;
@Data
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public static class Screen extends ApiModel<Screen> {
private String name;
private Map<String, Map<String, Object>> properties;
}
}
由于某种原因,当我提取属性值时,它会丢失字段的引号,冒号被等号替换。
LinkedHashMap mapValue =
(LinkedHashMap)
response.getScreen().getProperties().get("message").get("value");
mapper = new ObjectMapper();
// For some reason retrieving the JSON from the map strips the quotes on fields.
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
// For some reason the colons get translated to equal signs.
String value = mapValue.get("rawResponse").toString();
POJO p = mapper.readValue(value, POJO.class);
出现以下错误:
JsonParseException:
Unexpected character ('=' (code 61)): was expecting a colon to separate field name and value
at [Source: (String)"{_links={self={href=
有什么想法吗?
能够解决这个问题。JSONObject能够更好地处理它。
如果有人遇到这个问题,答案如下:
JSONObject o = new JSONObject(response.getScreen().getProperties());
POJO p = mapper.readValue(o.getJSONObject("message").getJSONObject("value").getJSONObject("rawResponse").toString(), PJOO.class);
注:内容翻译自官网文档 Language Guide (proto3) 中的 JSON Mapping 一节 Proto3支持JSON格式的标准编码, 让在系统之间分享数据变得容易. 编码在下面的表格中以type-by-type的基本原则进行描述. 如果一个值在json编码的数据中丢失或者它的值是null, 在被解析成protocol buffer时它将设置为对应的默认值.如果一个字段的值正好是p
我有一个来自API的日期格式,如下所示: 即YYYY-DD-MM HH:MM AM/PM GMT时间戳。我正在将这个值映射到POJO中的日期变量。显然,它显示转换错误。 我想知道两件事: 我需要使用什么格式来与Jackson进行转换?日期是一个很好的字段类型吗? 一般来说,在Jackson将变量映射到对象成员之前,有没有一种方法可以处理这些变量?例如,更改格式、计算等
问题内容: 我有一个来自API的Date格式,如下所示: 这是YYYY-DD-MM HH:MM am / pm GMT时间戳。我将此值映射到POJO中的Date变量。显然,其显示转换错误。 我想知道两件事: 与Jackson进行转换时,我需要使用哪种格式?Date是否适合此字段类型? 通常,是否有一种方法可以在Jackson将变量映射到Object成员之前处理这些变量?诸如更改格式,计算等。 问题
目前我有一个DAO在做这样的事情: 而映射器则执行如下操作:(简化为该问题所需的内容) 作为JsonB字段存储在Aurora中。我读过一些关于注释的文章,但由于jdbi文档不清楚,所以我不确定这是否正确。 我映射结果的方式是“标准”方式吗?还是有更好/更有效的方式? 谢谢
问题内容: 我有来自API的Date格式,如下所示: 这是YYYY-DD-MM HH:MM am / pm GMT时间戳。我将此值映射到POJO中的Date变量。显然,其显示转换错误。 我想知道两件事: 与Jackson进行转换时,我需要使用哪种格式?Date是否适合此字段类型? 通常,是否有一种方法可以在Jackson将变量映射到Object成员之前对其进行处理?诸如更改格式,计算等。 问题答案
Google数据丢失预防API支持.pdf还是.docx?我正在尝试在Java中对*.pdf文件做缩减,以隐藏敏感数据。 多谢!EMI