gpt4 book ai didi

java - 当某些值已被称为 json 字符串时,找到一种使用 jackson 将 map 转换为 json 的更好方法

转载 作者:行者123 更新时间:2023-11-30 09:31:00 25 4
gpt4 key购买 nike

我知道使用 Jackson 将 Map 转换为 Json 非常容易。但我想知道我的情况是否有更好的方法。下面是我的代码。

String jsonInfo = "{\"attr\":\"value\",\"attr2\",\"value2\"}";

ObjectMapper mapper = new ObjectMapper();
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","daniel");
map.put("info",mapper.readValue(jsonInfo, new TypeReference<Map>(){}));

String finalJsonString = mapper.writeValueAsString(map);

如您所见,我已经知道 jsonInfo 是一个 json 字符串。对于这部分,我将其转换为 map 然后最后让 Jackson 再次将其转换为 json。有没有更好的方法可以避免这种重复工作?

最佳答案

您只想使用 Jackson 将您的 JSON 解析为树结构,然后您可以在其中添加数据。这消除了序列化/反序列化到 POJO(或 Map)的额外步骤

String jsonInfo = "{\"attr\":\"value\",\"attr2\":\"value2\"}";
ObjectMapper mapper = new ObjectMapper();
JsonNode origNode = mapper.readTree(jsonInfo);

ObjectNode rootNode = mapper.createObjectNode();
rootNode.put("name", "daniel");
rootNode.put("info", origNode);

String finalJson = rootNode.toString();

然后你的 finalJson 变成:

{"name":"daniel","info":{"attr":"value","attr2":"value2"}}

请注意,JsonNode 是不可变的,但如果您也想修改原始 JSON,可以将其转换为 ObjectNode

关于java - 当某些值已被称为 json 字符串时,找到一种使用 jackson 将 map 转换为 json 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13044314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com