had*_*des 4 java jackson objectmapper
我有这个json文件:
{
"gateway_name": "gateway1",
"fields": [
{"name":"Code", "value":""},
{"name":"PaymentId", "value":""},
{"name":"RefNo", "value":""}
]
}
Run Code Online (Sandbox Code Playgroud)
我试图用Jackson对象映射器解析这个文件并遍历fields数组。我想要实现的是当name等于时RefNo,操纵valueto 1112,所以它会变成:
{
"gateway_name": "gateway1",
"fields": [
{"name":"Code", "value":""},
{"name":"PaymentId", "value":""},
{"name":"RefNo", "value":"1112"}
]
}
Run Code Online (Sandbox Code Playgroud)
我如何检查field值并将其设置value为1112?
到目前为止我尝试的是:
Resource resource = new ClassPathResource("gateway-fields.json"); //read from json file
JsonFactory jsonFactory = new JsonFactory();
ObjectMapper objectMapper = new ObjectMapper(jsonFactory);
JsonNode arrayNode = objectMapper.readTree(resource.getFile()).get("fields");
if (arrayNode.isArray()) {
for (JsonNode jsonNode : arrayNode) {
JsonNode nameFieldNode = jsonNode.get("name");
JsonNode valueFieldNode = jsonNode.get("value");
//Stcuked here
IF nameFieldNode is "RefNo"
THEN SET valueFieldNode to "1112"
}
}
Run Code Online (Sandbox Code Playgroud)
与名称进行比较并更新该 json 元素。
Resource resource = new ClassPathResource("gateway-fields.json"); //read from json file
JsonFactory jsonFactory = new JsonFactory();
ObjectMapper objectMapper = new ObjectMapper(jsonFactory);
JsonNode arrayNode = objectMapper.readTree(resource.getFile()).get("fields");
if (arrayNode.isArray()) {
for (JsonNode jsonNode : arrayNode) {
String nameFieldNode = jsonNode.get("name").asText();
if("RefNo".equals(nameFieldNode)){
((ObjectNode)jsonNode).put("name", "1112");
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12845 次 |
| 最近记录: |