JsonNode response = objectMapper.readTree(responseBody);
String textData = response.get("data").toString();
下面是textdata的输出。
[{"acc":"1278915","for":"159000"},{"acc":"8963258","for":"152863"},{"acc":"9632578","for":"258963"}]
正如您在上面代码中看到的注解一样,textdata会像上面一样向我返回值。我想做上面的事 acc
那么,我该怎么做呢?
“acc”:“xx78915”,我想替换每个项目acc的前两位数字。
我有以下用途,但它不做。
String output = "xxxx" + textData.substring(4);
在那之后我回到我的视野
return (List<Map<String, String>>) objectMapper.readValue(text, List.class);
4条答案
按热度按时间5lwkijsr1#
如果您需要为每个项目替换acc的前两位数字,请尝试regex:
kd3sttzy2#
使用org.json库的示例-也许这对其他人有用
输出:
或
使用java正则表达式
输出:
jaql4c8m3#
绳子
textData
表示有效的json格式,因此您可以将其转换为List<Model>
或者List<Map<String,String>>
使用objectmapper建模
List<Model>
```List list = objectMapper.readValue(jsonCarArray, new TypeReference<List>(){});
List<Map<String,String>> list = objectMapper.readValue(jsonCarArray, new TypeReference<List<Map<String,String>>>(){});
list.forEach(obj->obj.computeIfPresent("acc",(key,val)-> /*logic to modify value */));
bjp0bcyl4#
response.get("data")
实际上包含另一个json,一个json数组:因此,要更改数组中的任何对象,您需要像在任何其他数组中一样迭代这些项:
如果没出什么问题
arrayNode
之后应该是这样的: