Парсинг JSON с OpenWeatherMap

Программирование на Юнити.

Парсинг JSON с OpenWeatherMap

Сообщение artlekseev 27 апр 2020, 17:19

Есть такой JSON с OpenWeatherMap
Синтаксис:
Используется javascript
{
   "coord":{
      "lon":65.53,
      "lat":57.15
   },
   "weather":[
      {
         "id":804,
         "main":"Clouds",
         "description":"overcast clouds",
         "icon":"04n"
      }
   ],
   "base":"stations",
   "main":{
      "temp":290.15,
      "feels_like":283.03,
      "temp_min":290.15,
      "temp_max":290.15,
      "pressure":1012,
      "humidity":17
   },
   "visibility":10000,
   "wind":{
      "speed":6,
      "deg":220
   },
   "clouds":{
      "all":88
   },
   "dt":1587915869,
   "sys":{
      "type":1,
      "id":8988,
      "country":"RU",
      "sunrise":1587859236,
      "sunset":1587913823
   },
   "timezone":18000,
   "id":1488754,
   "name":"Tyumen",
   "cod":200
}

и скрипт-парсер, который печатает каждый параметр из json в консоль unity
Синтаксис:
Используется csharp
using System.IO;
using UnityEngine;

public class Weather : MonoBehaviour
{
    public int apiKey;
    public string cityName;
    public WeatherJsonData weatherJsonData;
    private string jsonData;

    void Start()
    {
        jsonData = File.ReadAllText(@"c:\owm.json");
        weatherJsonData = JsonUtility.FromJson<WeatherJsonData>(jsonData);
        JsonUtility.FromJsonOverwrite(jsonData, weatherJsonData);

        print(weatherJsonData.id + " id");
        print(weatherJsonData.main + " main");
        print(weatherJsonData.description + " desc");
        print(weatherJsonData.icon + " icon");
        print(weatherJsonData.temp + " temp");
        print(weatherJsonData.temp_min + " temp_nim");
        print(weatherJsonData.temp_max + " temp_max");
        print(weatherJsonData.feels_like + " feels_like");
        print(weatherJsonData.humidity + " humidity");
        print(weatherJsonData.speed + " speed");
        print(weatherJsonData.deg + " deg");
        print(weatherJsonData.all + " all");
    }
}

public class WeatherJsonData
{
    //weather
    public int id;
    public string main;
    public string description;
    public string icon;
    //main
    public float temp;
    public float temp_min;
    public float temp_max;
    public float feels_like;
    public float humidity;
    //wind
    public float speed;
    public float deg;
    //clouds
    public float all;
}
 

Но выводит он только это:
https://prnt.sc/s6t24x
Что в скрипте не так, почему id берет из предпоследней строки json, почему остальные параметры пустые?
artlekseev
UNец
 
Сообщения: 19
Зарегистрирован: 01 ноя 2017, 19:36

Re: Парсинг JSON с OpenWeatherMap

Сообщение DbIMok 27 апр 2020, 19:17

правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.6k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6