使用java修剪json对象中的冗余属性

时间:2016-09-06 11:51:43

标签: java mongodb jsonobject

我想修剪下面的json对象。这是我建立在mongoDB响应之上的json对象。我想要做的是只删除$ oid,因为它们是冗余属性并保持值(_id或$ id)而没有Curley括号,只需调用属性id。 所以我需要的只是“id”:“2283cef627ff2cc33ad5990” 你能不能帮助我,我正在和json挣扎。

foo

1 个答案:

答案 0 :(得分:0)

a)您可以使用映射器将JSON转换为对象,然后调用所需的属性,如Jackson

ObjectMapper mapper = new ObjectMapper();
String jsonInString = YOUR_STRING;

//from String to MyClass
MyClass object = mapper.readValue(jsonInString, MyClass.class);

在此示例中,您必须使用所需的所有属性(例如_id,name,users等)定义一个MyClass类。

b)如果你想实现更快的解决方案,你可以直接操作字符串;如果您知道oid总是24个字符,您可以执行类似

的操作
String c = str.substring(str.indexOf("\"", str.indexOf("$oid")+6)+1, str.indexOf("\"", str.indexOf("$oid")+6)+25);

但我强烈建议你去看看杰克逊并尝试一下。像这样的解决方案非常脆弱,JSON中的每次更改都会导致错误的结果。