英文:
How can I extract Map from my JSON respone
问题
JSON响应:
{
"took": 24,
"timed_out": false,
"_shards": {
"total": 3,
"successful": 3,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.0,
"hits": [
{
"_index": "alibaba",
"_type": "alibaba",
"_id": "[\"523486f0-aaaa-aaaa-bdc8-a39572623db\",\"test\",\"cloud\"]",
"_score": 0.0,
"_source": {
"Company": "alibaba",
"myMap": {
"Key_1": "Value_1",
"Key_2": "Value_2",
"Key_3": "Value_3"
}
}
}
]
}
}
从上面,我需要提取出地图("myMap")。我所做的如下:
JSONObject response = (JSONObject) element.get("_source");
String company = response.optString("Company", null);
// 到这里的代码是正确的。但在下一行会报错。
String company = response.optString("myMap");
我知道我试图将地图提取为字符串,这是问题的原因。
因此,我想知道如何从JSON对象中检索“myMap”。
谢谢。
英文:
JSON Response:
{
"took": 24,
"timed_out": false,
"_shards": {
"total": 3,
"successful": 3,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.0,
"hits": [
{
"_index": "alibaba",
"_type": "alibaba",
"_id": "[\"523486f0-aaaa-aaaa-bdc8-a39572623db\",\"test\",\"cloud\"]",
"_score": 0.0,
"_source": {
"Company" : "alibaba",
"myMap": {
"Key_1": "Vlaue_1",
"Key_2": "Vlaue_2",
"Key_3": "Vlaue_3",
}
}
}
]
}
From the above, I need to extract the map.
What I did is as follows.
JSONObject response= (JSONObject) element.get("_source");
String company = response.optString("Company",null);
// Till this code works fine. But gives error in next line.
String company = response.optString("myMap");
I know I am trying to get map in string, which is cause of problem.
Hence, I want to know how can I retrieve 'myMap' from the JSON Object.
Thanks.
答案1
得分: 0
你应该能够提取JSONObject
,不确定你正在使用哪个库,但是你应该能够提取JSONObject
。
JSONObject response= (JSONObject) element.get(" _source ");
JSONObject company = (JSONObject) response.get(" myMap ");
英文:
Not sure which library you are using but, you should be able to extract the JSONObject
JSONObject response= (JSONObject) element.get("_source");
JSONObject company = (JSONObject) response.get("myMap");
答案2
得分: 0
首先,提供的 JSON 不是有效的,我不知怎么使其工作并使用了你提供的整个 JSON。
JSONObject myMap = obj.getJSONObject("hits").getJSONArray("hits").getJSONObject(0).getJSONObject("_source").getJSONObject("myMap");
如果你想要一个映射(map),你可以使用一个映射器(mapper)将 jsonObject 转换为映射,就像这个链接中所示:https://stackoverflow.com/questions/443499/convert-json-to-map
英文:
First of all the json provided is not valid I somehow made it work and used the entire json you provided.
JSONObject myMap = obj.getJSONObject("hits").getJSONArray("hits").getJSONObject(0).getJSONObject("_source").getJSONObject("myMap");
If you want a map you can use a mapper to change jsonObject to map as in https://stackoverflow.com/questions/443499/convert-json-to-map
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论