Всем привет. Десериализовал JSON, но почему-то при попытке вывести какие-либо значения, получаю либо Null, либо исключение.
JSON:
[
[
{
"way_id":"24665462",
"points": [
{"x":"12847.1", "z":"60990.6"},
{"x":"12846.5", "z":"60989.8"},
{"x":"12845.2", "z":"60988.9"},
{"x":"12845.6", "z":"60989.1"},
{"x":"12846.3", "z":"60989.7"},
{"x":"12846.9", "z":"60990.4"},
{"x":"12847", "z":"60990.5"}
],
"tags": [
{"key":"bicycle", "value":"yes"},
{"key":"highway", "value":"footway"},
{"key":"lit", "value":"yes"},
{"key":"smoothness", "value":"good"},
{"key":"surface", "value":"asphalt"}
]
}
],
[
{
"way_id":"24665463",
"points": [
{"x":"12847.6", "z":"60990.6"},
{"x":"12847.1", "z":"60989.8"},
{"x":"12847.3", "z":"60990.2"},
{"x":"12847.4", "z":"60990.2"},
{"x":"12847.1", "z":"60989.9"}
],
"tags": [
{"key":"highway", "value":"footway"},
{"key":"source","value":"survey"}
]
}
]
]
Модель:
[Serializable]
public class JsonRoot
{
public WayObject ways { get; set; }
}
[Serializable]
public class WayObject
{
public Way way { get; set; }
}
[Serializable]
public class Way
{
public ulong wayID { get; set; }
public Coords coords { get; set; }
public Description description { get; set; }
}
[Serializable]
public class Coords
{
public Point points { get; set; }
}
[Serializable]
public class Description
{
public Tags tags { get; set; }
}
[Serializable]
public class Point
{
public float x { get; set; }
public float z { get; set; }
}
[Serializable]
public class Tags
{
public string key { get; set; }
public string value { get; set; }
}
C#:
var root = JsonConvert.DeserializeObject<List<List<JsonRoot>>>(jsonData);
Debug.Log(root[0][0].ways); // null
Debug.Log(root[0][0].ways.way.wayID); // NullReferenceException: Object reference not set to an instance of an object
В чем может быть ошибка? Может, где-то не так структуру накладываю?
У вас имена JSON
отличаются от тех, что в классах. То есть в JSON
к примеру у вас way_id
, а в классе wayID
. Хотите красивые имена - ставьте [JsonProperty("way_id")]
.
У вас в JSON
нету таких разделов как ways
и way
, у вас есть просто зубчатый массив Way[][]
с уже последующими данными (по типу Points
и др.).
Советую вам взглянуть на свой JSON через этот сайт, сразу поймете его структуру. А также может пригодиться данный сайт, который поможет в создании правильной структуры классов.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть база данныхДержать все записи в памяти очень ресурсно затратно