2015-12-18 5 views
0

Для начала, я довольно новичок в programming. Я должен создать Android погоды App для школьного проекта, и я застрял с этой большой задницей JSON:Чтение больших данных json в java

JSON Data

Из-за этого, как бы я прочитал температуру из каждых 3 часового интервала (например, : 9.00-12.00 температура: 5 ° C, 12.00-15.00 температура: 7 ° C и т. Д.). Итак, у меня есть Activity, который отображает температуру всего дня на три часа. Поскольку у меня нет опыта работы с JSON, я понятия не имею, что означают определенные индексы, когда он увеличивается (есть, например, 8 main: thingies).

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я должен использовать JSON, никаких GSON или других ярлыков, мне нужно разобрать и прочитать определенные данные из этого JSON. Я получаю этот JSON от API открытой погоды, поэтому он меняется каждый день. API

+0

JSON является представлением данных, просто выражать свои данные в формате JSON, вы «с помощью JSON». Итак, из вашего вопроса непонятно, что вы ищете здесь, так как вы говорите, что вам «нужно использовать JSON». В конечном итоге вам понадобится парсер JSON. – nickb

+0

Пожалуйста, разместите код, который у вас есть, даже если он не работает, и результаты или ошибки, которые он в настоящее время производит. Без этого кому-то будет трудно помочь. – Jon

+0

Можно ли использовать парсер? Или вы намереваетесь сами разобрать это? –

ответ

0

volly библиотека для этого. Вы можете легко получить данные из json. Не требуется асинхронная задача, если вы используете вольную библиотеку.

0
  1. Сначала подтвердите json, перейдя на страницу http://jsonlint.com/. Это поможет вам увидеть форматированную строку Json.

  2. Следующее чтение на массиве Json и объекте.

  3. Используйте AsynTask, чтобы получить Json в строку прогноза jsonStr.

  4. Затем вам нужно преобразовать этот forecastJsonStr в объект JSon forecastJsonObj

Чтобы получить данные о погоде в "списке" сделать что-то похожее на

JSONArray weatherArray = forecastJson.getJSONArray("list"); 

Надеется, что это помогает

0
JSONObject receivedData = new JSONObject("The string that you get as response from the API"); 
JSONArray weatherList = receivedData.getJSONArray("list"); 
for(int i=0;i<weatherList.length();i++){ 
    JSONObject data = weatherList.getJSONObjectAt(i); 
    String date_text - data.getString("dt_txt"); 
    JSONArray weatherData = weatherList.getJSONArray("main"); 
    for(int j=0;j<weatherData.length();j++){ 
     // Here is where you will get all the weather stuff that you need 
     int temp = weatherData.getInt("temp"); 
     // Similarly other values like temp_min, temp_max 
    } 
} 

Итак, в основном вам нужно разобрать все. Чтобы лучше понять всю структуру, используйте что-то вроде http://jsonviewer.stack.hu/, чтобы более точно просмотреть JSON, чтобы вы лучше знали, что вам нужно от данных JSON. Простая копия вставьте ваши данные туда и нажмите «Формат».

JSON - это просто имя-значение, пара видов хранения, если вы видите хранимое как «имя»: «значение». Целочисленные значения не имеют значения «».

Помните, что все JSON хранится в {}, а JSON может быть вложен в JSON. Итак, в вашем примере, если вы видите, все это JSON. В этом случае у вас есть ключ «город», который имеет значение внутри {}. Таким образом, «город» - это JSONObject.

Аналогично, «координирование» - это JSONObject, а «cod» - это строка, а «cnt» - целое число.

Также могут быть случаи, когда имя указывает на массив объектов JSON, таких как «список» здесь. Массивы JSON обозначаются с помощью []. Вложенные внутри объекты JSON разделены запятой.

Выше является очень простым образцом, чтобы вы начали, чтобы вы поняли, что происходит. Так что поиграйте и попробуйте извлечь из него больше данных.

Все самое лучшее и счастливого кодирования :)

Смежные вопросы