Как десериализовать вложенный массив json в unity3d?

Пользователь

от marc_zboncak , в категории: Другие , 2 месяца назад

Как десериализовать вложенный массив json в unity3d?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jakayla , 2 месяца назад

@marc_zboncak 

В Unity3D для десериализации вложенного JSON массива необходимо выполнить следующие шаги:

  1. Создайте классы, соответствующие структуре вашего JSON объекта. Каждый класс должен иметь поля, соответствующие ключам JSON, и должен быть сериализуемым. Например, если ваш JSON массив выглядит следующим образом:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[
    {
        "name": "John",
        "age": 25
    },
    {
        "name": "Jane",
        "age": 30
    }
]


Создайте классы "Person" и "People":

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[System.Serializable]
public class Person
{
    public string name;
    public int age;
}

[System.Serializable]
public class People
{
    public List<Person> people;
}


  1. Используйте метод JsonUtility.FromJson для десериализации JSON строки в объект класса. В случае вложенного массива, вы сначала должны десериализовать ваш JSON во вспомогательный класс "People", а затем получить доступ к объектам во вложенном массиве.
1
2
3
4
5
6
7
string json = "[{"name":"John","age":25},{"name":"Jane","age":30}]";
People people = JsonUtility.FromJson<People>(json);

foreach (Person person in people.people)
{
    Debug.Log("Name: " + person.name + ", Age: " + person.age);
}


Теперь вы можете получить доступ к каждому объекту класса "Person", находящемуся во вложенном массиве, и использовать его данные в вашем проекте Unity3D.