我想知道是否有人可以帮助我或提示我如何在java中编辑附加的伪json文件。
如您所见,我有一个head对象,它包含许多值和遵循相同模式的子对象。
我想知道是否有办法删除值为-1的所有键。
以下是我在许多网站上尝试使用的 jackson
:
try {
// create object mapper instance
ObjectMapper mapper = new ObjectMapper();
// convert JSON file to map
Map<?, ?> map = mapper.readValue(Paths.get("test.json").toFile(), Map.class);
// print map entries
for (Map.Entry<?, ?> entry : map.entrySet()) {
isInteger = main.isObjectInteger(entry.getValue());
// System.out.println("if value is all: " + entry.getKey() + "=" + entry.getValue());
//
上面的代码将显示文件的结构,但是我的问题是在子级中达到-1值并删除它们。
使用.getclass和.simplename方法,我知道它是一个arraylist,但我对如何搜索它感到困惑。
任何帮助都将不胜感激!
2条答案
按热度按时间7kjnsjlb1#
在
Jackson
你可以通读JSON
有效负载组件JsonNode
并在给定条件下对所有属性进行迭代检查。如果满足条件,您可以删除给定字段。为此,需要实现递归方法。看看下面的例子:用于以下
JSON
有效载荷:以上代码打印:
另请参见:
在java中展平3级嵌套json字符串
cig3rfwq2#
解析和生成json数据(以及许多其他格式,如xml等)有两种主要技术:对象Map和面向事件/令牌/流的处理。第二种方法是许多情况下的最佳方法,包括过滤。道具:
文件/数据不需要完全加载到内存中,您可以毫无问题地处理meg/gig
它工作得更快,尤其是对于大文件
使用此模式很容易实现任何自定义类型/转换规则
gson和jackson都支持面向流的处理。为了说明这个想法,这里只是一个使用小型解析器/生成器的示例https://github.com/anatolygudkov/green-jelly