Я много раз пытался декодировать вложенную строку JSON, состоящую из вложенного массива, я использовал GSON()
для этого. и это сработало, но проблема об объектах внутри этого массива не декодироваться из JSON, поэтому я нужна ваша помощь:Как декодировать эту вложенную строку JSON?
JSON Строка:
{ "data" : { "current_condition" : [ { "cloudcover" : "75",
"humidity" : "87",
"observation_time" : "03:16 AM",
"precipMM" : "1.5",
"pressure" : "991",
"temp_C" : "11",
"temp_F" : "52",
"visibility" : "7",
"weatherCode" : "293",
"weatherDesc" : [ { "value" : "Patchy light rain" } ],
"weatherIconUrl" : [ { "value" : "http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0033_cloudy_with_light_rain_night.png" } ],
"winddir16Point" : "SSW",
"winddirDegree" : "210",
"windspeedKmph" : "30",
"windspeedMiles" : "19"
} ],
"request" : [ { "query" : "London, United Kingdom",
"type" : "City"
} ],
"weather" : [ { "date" : "2014-01-03",
"precipMM" : "6.9",
"tempMaxC" : "10",
"tempMaxF" : "50",
"tempMinC" : "5",
"tempMinF" : "41",
"weatherCode" : "293",
"weatherDesc" : [ { "value" : "Patchy light rain" } ],
"weatherIconUrl" : [ { "value" : "http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0017_cloudy_with_light_rain.png" } ],
"winddir16Point" : "SW",
"winddirDegree" : "220",
"winddirection" : "SW",
"windspeedKmph" : "33",
"windspeedMiles" : "21"
} ]
} }
мой код, чтобы декодировать этот JSON:
HashMap HashMap = new Gson().fromJson(json, HashMap.class);
и его вывод:
{данных = {запрос = [{запрос = Лондон, Великобритания, тип = Город}], current_condition = [{cloudcover = 75, влажность = 87, время наблюдения = 03: 16 AM, пределMM = 1,5, давление = 991, temp_C = 11, temp_F = 52, видимость = 7, weatherCode = 293, weatherDesc = [{ value = Patchy light rain}], weatherIconUrl = [{value = http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0033_cloudy_with_light_rain_night.png}], winddir16Point = SSW, winddirDegree = 210, windspeedKmph = 30, windspeedMiles = 19}], weather = [{date = 2014-01-03 , precipMM = 6,9, tempMaxC = 10, tempMaxF = 50, tempMinC = 5, tempMinF = 41, weatherCode = 293, weatherDesc = [{значение = Очаговое дождь}], weatherIconUrl = [{значение = http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0017_cloudy_with_light_rain.png}], winddir16Point = SW, winddirDegree = 220, winddirection = SW, windspeedKmph = 33, windspeedMiles = 21}]}}
так я хочу идеальный метод, чтобы дать мне возможность войти в этом вложенный массив HashMap и это значение, потому что мой метод не дает мне возможность вызывать вложенные значения из этого массива
Спасибо,
Ваш код должен работать нормально; вам просто нужно кэшировать внутренние объекты в HashMap. – SLaks
См. Json.org для синтаксиса JSON. Это довольно легко понять. –
Для доступа к внутренним объектам вы просто «очищаете лук», слой за раз. «data» дает вам карту, с которой вы можете получить доступ к «current_condition». Это создает список, содержащий один элемент, карту, содержащую «облачную», «влажность», «время наблюдения» и т. Д. –