Я новичок в Unity3d и C#. Я хочу хранить некоторые данные в JSON файлах, чтобы их можно было легко редактировать в текстовом редакторе . .
. До сих пор я использовал JsonUtility, потому что он был собран в Unity, и он прекрасно работал. Возможность использовать его так же просто, как:
string json = JsonUtility.ToJson(foo);
Foo foo = JsonUtility.FromJson<Foo>(json);
, была великолепна для меня.
Но теперь я добавил несколько словарей. Позже они конвертируются для более эффективных структур данных, но я хочу сериализовать их в JSON как именованные объекты.
Вот пример моего кода. Структура объектов в моем случае установлена и известна. Одиночный словарь содержит объекты одного типа, а словарь задан глубже в иерархии сериализуемых объектов.
[System.Serializable]
public struct Bar{
public int x;
public int y;
}
[System.Serializable]
public class Foo{
public int otherData = 43;
public Dictionary<string,Bar> bar = new Dictionary<string,Bar>(){
{"spaceship", new Bar{x = 7, y = 11}},
{"pirates", new Bar{x = 5, y = -3}},
};
}
Чего я хочу достичь:
{
"otherData": 43,
"bar": {
"spaceship": {"x": 7, "y": 11},
"pirates": {"x": 5, "y": -3}
}
}
Есть ли способ сделать это работа?
Может быть, я могу написать о методах сериализации / десериализации для словаря?