【发布时间】:2015-09-18 09:38:11
【问题描述】:
我需要从动态 json 中获取键的值。
输入-> json 对象,字符串键
output->json元素(对应key的值)
示例
JsonObject Jmsg =
{
"id": "1753_CORE1",
"name": "Gtx cuda Service:1753",
"shortName": "gt-service-1753",
"createdDate": "Mar 31, 2015 4:47:10 PM",
"config": {
"oauthSecret": [
{
"id": 45,
"config123": {
"oauthSecret": "P8n2x5Hsst0nFRRB0A",
"status": "CREATED"
},
"SERVER132": "1000"
},
{
"id": 46,
"config123": {
"oauthSecret": "P8n2x5Htss0nFRRB0A"
},
"SERVER132": "1000"
}
],
"oauthKey": "154284-service-1753",
"SERVER": "1000"
},
"features": [
9004,
9005
]
}
和字符串键=“状态”;
然后
JsonElement Jvalue = jsonGetValueformKey(Jmsg,key);
应该在 JsonElement 或字符串类型中返回 'CREATED'。
如果字符串键 = "功能";
然后
JsonElement Jvalue = jsonGetValueformKey(Jmsg,key);
应该以 JsonElement 或 jsonArray 类型返回 [9004,9005]。
如果未找到密钥,则返回 null
JsonObject Jmsg 可以是任何东西
【问题讨论】:
-
我假设您当前使用
Gson,所以我建议您查看entrySet()方法,该方法返回您元素的所有成员。从那里您可以使用循环或递归遍历所有字段。但要小心,例如String key = "id" -
是的.. 我正在使用
Gson使用 Gson 实现会有所帮助 -
您打算如何使用
JsonArray中的键(如"config123")或使用"id"等甚至出现在不同层上的键? -
是的.. json 可以是任何东西。 ...它甚至可能没有我们正在搜索的那个键
-
那没有回答我的问题。当您搜索关键字
"config123"或"oauthSecret"或"id"时,请提供您的样本的预期输出