我有一个API,它以以下格式返回JSON:
{
"errors": null,
"someKey1": "someValue1",
"someKey2": "someValue2",
"response": {
"id": 21,
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": {
"key5": [
{
"ABC": "abc",
"XYZ": 1,
"PQR": "pqr"
},
{
"ABC": "abc",
"XYZ": 3,
"PQR": "pqr"
}
]
},
"key6": "value6"
}
}
我还有一个POJO类,它具有与JSON响应的响应
键对应的字段,因为someKey1
、someKey2
和错误
键在我的用例中不相关。
是否可以将JSON响应映射到我的JavaPOJO类,即只映射响应
键内的值?
一种可能的方法是接受String响应,并使用setter方法将其映射到我的POJO。
String apiResponse = restTemplate.exchange(someUrl, HttpMethod.GET, new HttpEntity<>(authHeader), String.class).getBody();
JSONObject jsonObject = new JSONObject(apiResponse);
MyObject myObject = buildNewObject(jsonObject.get("response"));
有更好的办法吗。像这样的
ResponseEntity<MyObject> responseEntity = restTemplate.exchange(someUrl, HttpMethod.GET, new HttpEntity<>(authHeader), MyObject.class).getBody().get("response");
你可以使用getForObject的RestTemboard。
代码示例:
HttpClient client = new HttpClient();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("USERNAME","PASS");
RestTemplate template = new RestTemplate(commons);
MyObject myObject = template.getForObject(someUrl,MyObject.class);
public class MyObject {
@JsonProperty(value="response")
private Map<String,String> response;
}
您可以创建一个Mapper
类,其中POJO作为一个对象,其他额外的值作为变量,如下所示
class Mapper{
private PojoClass response;
private String someKey1;
private String somekey2;
private String errors;
//Create getters and setters
}
现在,响应
将自动绑定到POJO,其他值将绑定到相应的键1和键2
我正在尝试使用Jackson将JSON映射到POJO。但是,由于此JSON包含对象的嵌套映射,当我将其反序列化到POJO时,timeseries信息不会转换为POJO。我只能在timeseries块中获取元数据部分和日期部分。timeseries块中的其他字段(如open、high和low)始终为空。 Jackson似乎无法将TimeSeries类中的字段与匹配。有人能告诉我该怎么做,或者给我指出
我使用JAVA jackson将JSON映射到JAVA pojo对象,我的JSON文件是: 在之后,我收到了以下错误消息: 不能反序列化出START_ARRAY令牌 我的POJO课程: 请问,这种JSON格式的正确java POJO是什么?谢谢
我和jackson一起绘制地图,我有点迷茫。我的Json具有以下结构 我确实找到了很多处理数组的教程,但我在第一个标记“d”时就已经失败了。而且根本不需要所有的“_元数据”标记。 我创建了一个包含lastName等属性和一个集合附件的pojo。但我的代码在标记“d”或“_元数据”时总是失败 还有杰克逊的读者 任何提示都将不胜感激。 问候马蒂亚斯
问题内容: 我有以下JSON表示盐请求的服务器响应: 我尝试使用以下POJO映射它: 现在每次我这样做: 该为空。如何使用Gson将JSON映射到POJO?我的变量顺序对Gson映射重要吗? 问题答案: 我的变量顺序对Gson映射重要吗? 不,不是这样。 如何使用Gson将JSON映射到POJO? 它是 区分大小写 和JSON字符串键应该是相同的POJO类使用的变量名。 您可以使用@Seriali
我有以下JSON来表示salt请求的服务器响应: 我尝试用以下POJO映射它: 每次我这样做: 为空。如何使用GSON将JSON映射到POJO?变量的顺序对Gson映射重要吗?
我一直在研究GraphQL作为我的一些RESTAPI的替代品,虽然我认为我已经对基本知识了如指掌,就像我目前看到的大多数内容一样,但似乎缺少了一个重要的功能。 比如说,我有一系列这样的物品: 应用程序需要所有这些对象的映射,按ID索引: 我写过的每个API都能够以这样的格式返回结果,但我正在努力寻找一种用GraphQL来做到这一点的方法。我一直在运行第101个问题,但这更多地涉及未知模式。就我而言