Преобразование обычной строки в JSON в Java - PullRequest
0 голосов
/ 10 мая 2018

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

[{
    "Id": "6d052279342d66d1ae4d4a84da0f98b80313277a3faeca4d7e822076c9dd4316",
    "Names": ["/elegant_bartik"],
    "Image": "alpine",
    "ImageID": "sha256:3fd9065eaf02feaf94d68376da52541925650b81698c53c6824d92ff63f98353",
    "Command": "/bin/sh",
    "Created": 1525954440,
    "Ports": [],
    "Labels": {},
    "State": "running",
    "Status": "Up About an hour",
    "HostConfig": {
        "NetworkMode": "default"
    },
    "NetworkSettings": {
        "Networks": {
            "bridge": {
                "IPAMConfig": null,
                "Links": null,
                "Aliases": null,
                "NetworkID": "430ff6d43b361b0a2f45046c575862ca4785216a0242e72d145c269f3ef326df",
                "EndpointID": "a7a2012d7841af6b5b76e24f57b13a5057252b511e8dbfb48e74aa1cc19e30b4",
                "Gateway": "172.17.0.1",
                "IPAddress": "172.17.0.2",
                "IPPrefixLen": 16,
                "IPv6Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "MacAddress": "02:42:ac:11:00:02",
                "DriverOpts": null
            }
        }
    },
    "Mounts": []
}]

Проблема в том, что мне нужно поместить его в JSONObject, есть ли какая-либо функция или последовательность функций, которая могла бы это сделать? Или мне нужно разбить всю строку?

Я пробовал JSONParse, Gson (из Google) и многое другое, но ничего из этого не работает.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

JSON, который вы опубликовали, представляет собой массив (обозначенный []), содержащий один объект (обозначенный {})

Сначала необходимо проанализировать JSON в массив, например (с помощью GSON):

JsonArray arr = new Gson().fromJson(string, JsonArray.class)

И тогда вы можете получить доступ к первому объекту в массиве:

JsonElement ele = arr.get(0);
0 голосов
/ 10 мая 2018

Во-первых, строка массива json выглядит хорошо. вам нужно будет прочитать его как jsonArray, а затем просмотреть каждый получающий jsonObjects.

   JSONArray jsonArray = new JSONArray(readlocationFeed); 
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject explrObject = jsonArray.getJSONObject(i);

}

Надеюсь, это поможет.

0 голосов
/ 10 мая 2018

Это JSONArray.Сначала вам нужно получить корневой массив json.Тогда вы можете получить первый объект из этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...