gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:32 25 4
gpt4 key购买 nike

我想修剪下面的 json 对象。这是我在 mongoDB 响应之上构建的一个 json 对象。我想要做的是仅删除 $oid,因为它们是多余的属性,并将值保留在内部(_id 或 $id ),而不使用 Curley 大括号,只需调用属性 id 即可。所以我需要的只是“id”:“2283cef627ff2cc33ad5990”你能帮帮我吗,我在 json 上苦苦挣扎。

{
"_id": {
"$oid": "22383cef627ff2cc33ad5990"
},

"name": "data1",

"users": [
{
"$ref": "user",
"$id": {
"$oid": "16a5fbcee4b0c2c2da3017ef"
}
},
{
"$ref": "user",
"$id": {
"$oid": "1795ff86e4b09fc66416cd2f"
}
},
],
},

最佳答案

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

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

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

在此示例中,您必须定义一个 MyClass 类,其中包含您需要的所有属性(例如 _id、名称、用户等)。

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

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

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

关于java - 使用java修剪json对象中的冗余属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39348386/

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