Как я могу извлечь карту из моего JSON респона - PullRequest
0 голосов
/ 07 августа 2020

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": "Vlaue_1",
                          "Key_2": "Vlaue_2",
                          "Key_3": "Vlaue_3",
                         }
                }
            }
        ]
 }   

Исходя из вышесказанного, мне нужно извлечь карту. Я сделал следующее.

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");

Я знаю, что пытаюсь получить карту в строке, что является причиной проблемы.

Следовательно, я хочу знать, как я могу получить ' myMap 'из объекта JSON.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Прежде всего предоставленный json недействителен, я каким-то образом заставил его работать и использовал весь json, который вы предоставили.

    JSONObject myMap = obj.getJSONObject("hits").getJSONArray("hits").getJSONObject(0).getJSONObject("_source").getJSONObject("myMap");

Если вам нужна карта, вы можете использовать картограф для изменения jsonObject для сопоставления, как в Преобразование JSON в сопоставление

0 голосов
/ 07 августа 2020

Не уверен, какую библиотеку вы используете, но вы сможете извлечь JSONObject

JSONObject response= (JSONObject) element.get("_source");
JSONObject company = (JSONObject) response.get("myMap");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...