我想修剪下面的json对象。这是我建立在mongoDB响应之上的json对象。我想要做的是只删除$ oid,因为它们是冗余属性并保持值(_id或$ id)而没有Curley括号,只需调用属性id。 所以我需要的只是“id”:“2283cef627ff2cc33ad5990” 你能不能帮助我,我正在和json挣扎。
foo
答案 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中的每次更改都会导致错误的结果。