Я пытаюсь взять данные JSON (Структура # 1) и реструктурировать их в работоспособную структуру для использования в Unity (Структура # 2), поскольку JSONUtility.FromJSON в Unity не поддерживает вложенные объекты в структуре # 1.
Можно ли как-нибудь использовать Json.Net C #, чтобы изменить структуру # 1 и сделать ее похожей на # 2?
Структура # 1
Этот файл данных JSON содержит 30 000 объектов со случайными номерами узлов с координатами широты и долготы, это только небольшой фрагмент
{
"71": {
"longitude": -179.5,
"latitude": -19.5
},
"72": {
"longitude": -179.5,
"latitude": -18.5
},
"157": {
"longitude": -179.5,
"latitude": 66.5
},
"158": {
"longitude": -179.5,
"latitude": 67.5
}
}
Превратиться в это ...
Структура #2
[
{
"nodeId": 71,
"longitude": -179.5,
"latitude": -19.5
},
{
"nodeId": 72,
"longitude": -179.5,
"latitude": -18.5
},
{
"nodeId": 157,
"longitude": -179.5,
"latitude": 66.5
},
{
"nodeId": 158,
"longitude": -179.5,
"latitude": 67.5
}
]
Ниже приведен код, который я хочу использовать, если это преобразование возможно
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpatialMapper : MonoBehaviour
{
TextAsset jsonObj;
private void Start()
{
MapPoints();
}
public void MapPoints()
{
jsonObj = Resources.Load("LocationNodes") as TextAsset;
string localJsonData = jsonObj.text;
JSONObjectContainer jsonObjects = JsonUtility.FromJson<JSONObjectContainer>(localJsonData);
foreach (var item in jsonObjects.rootNodes)
{
print(item.NodeId);
}
}
[System.Serializable]
public class JSONObjectContainer
{
public RootNode[] rootNodes;
}
[System.Serializable]
public class RootNode
{
public string NodeId;
public NodeData nodeData;
}
[System.Serializable]
public class NodeData
{
public string latitude;
public string longitude;
}
}