从Java中的列表创建JSON对象

kimi1990mp:

我有一个List<String>,其中每个元素代表一个节点,而a String是与该列表的最后一个节点相对应的值。该列表表示该值的路径。因此,列表中的每个元素基本上都是前一个元素的值。我想使用Jackson从它创建一个JSON对象。但是,这需要动态完成,而不是显式设置JSON对象的节点,因为列表并不总是相同的。

因此,我想知道是否存在一种方法来转换或迭代列表并创建JSON对象。因此,如果我的列表如下所示:

["user", "car", "brand"] 并且值为“ BMW”,JSON对象应如下所示:

{
   "user":
      {
        "car":
          {
            "brand": "BMW"
          }
      }
}
吉兹尼:

反向迭代列表,并在每次迭代时为list元素创建一个新的JsonNode,将先前的JsonNode作为子级添加到新的JsonNode中,并使用新的JsonNode覆盖原始引用。冲洗并重复。

就像是...

final String value = "BMW"; // whatever the final "value" is.
final ObjectMapper objectMapper = new ObjectMapper();

ObjectNode json = null;

for (int i = list.size() - 1; i >= 0; i--) {

  final String prop = list.get(i);
  final ObjectNode objectNode = objectMapper.createObjectNode();

  if (json == null) {
    objectNode.put(prop, value);
  } else {
    objectNode.put(prop, json);
  }

  json = objectNode;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章