因此,通过对Stackoverflow的研究,特别是本主题,我已经确定在一个正常工作的getter/setter设置中嵌入了一个JSON对象字典。当我调用API时,属性的传统getter/setter工作得很好,但这是因为我知道属性的名称。如何使其适用于名为errors
的对象的未知属性,以及该对象的格式是什么(map
)?
API响应:
{
"success":false,
"response_code":1,
"status_message":"One or more errors has occurred.",
"errors":{
"171":["Some error message."],
"555":["Some other error message."]
}
}
我的POJO:
public class APIResponse {
private boolean success;
private int response_code;
private String status_message;
private Map<String, List> errors = new HashMap<>();
...
}
如何设置getter/setter和正确的字典格式(看起来可能是map
),以便开始接收这个动态的errors
对象?
我正在使用invocation.builder
将API响应解析为对象。
Response response= invocationBuilder.post(Entity.entity(APIRequest, MediaType.APPLICATION_JSON));
APIResponse formattedResponse = response.readEntity(APIResponse.class);
我的解决方案是分层的。
首先,Moxy不做地图的发现让人害怕,但当我发现这是个问题时,我又重温了一下。所以我不得不将默认序列化程序从Moxy更改为jackson。这可以通过更改pom.xml
轻松完成:
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey.version}</version>
</dependency>
第二,我的尝试有点错误,而不是:
私有Hashmap
将构造函数与它完全一致地抛出总是会清除数据。相反,我只是初始化映射,然后在POJO上创建正常的getter/setter。
对于使用Java Spring RestTemplate完成的HTTP请求,我得到一个JSON键值对对象的响应,该对象带有动态键,如下所示。 回应: 如何将响应对象映射到POJO或映射? 我使用RestTemplate如下所示。
我使用flink动态分析json类型的数据,对keyby和给定的列求和,在我的mapFunction中,我将json转换为case类,但结果流没有在keyby函数中得到编译器,在线程“main”org.apache.flink.api.common.InvalidProgramException中得到错误。我的代码如下所示 我如何将json转换为case类或tuple?
我需要在输入 JSON 下方转换以输出 JSON,但不确定如何为该输出编写规范。比较 JOLT 转换中的归档值 输入: 预期输出: 在标题部分需要有名称、描述和id。任何建议都将不胜感激。在标题部分需要有名称、描述和id。任何建议都将不胜感激。
问题内容: 我如何解析这个json对象: 我可以有N个端口,每个端口的值始终是key:value对。 到目前为止,我已经尝试过了: 有了这个我得到键(0,1),但值是空的。 我也尝试过这个: 但也不行。 这就是我解码json对象的方式: 问题答案: 使用此类型: 游乐场的例子 笔记: 字段名称非常匹配。我使用字段名称“ Ports”来匹配JSON文本中使用的名称。 Go类型在JSON中应具有相同级
我需要在输入 JSON 下方转换以输出 JSON,但不确定如何为该输出编写规范。比较 JOLT 转换中的归档值 以下是输入内容: 预期输出:我需要在输入JSON下方转换为输出JSON,并且不确定如何为该输出编写规范。在JOLT转换中比较文件值。
我有一个json响应从API如下 我试图解析它并在列表视图中显示它。但是我在映射数据时遇到了如下错误,错误是“\u TypeError(type'String'不是type'map的子类型