Используйте данные, полученные из WWW в Unity 3D - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть API, и всякий раз, когда я его нажимаю, я получаю следующий ответ:

{
    "current_points": 2300,
    "tasks": [
        { "title": "Fire a player", "points": 200, "completed": true },
        { "title": "Buy a player", "points": 200, "completed": true },
        { "title": "Press conference", "points": 1000, "completed": false },
        { "title": "Set lineup", "points": 500, "completed": false },
        { "title": "Win a match", "points": 200, "completed": false }
    ]
}

Теперь я хочу разбить эти данные и использовать их для обновления моего пользовательского интерфейса на экране «игра окончена». Проблема в том, что я не знаю, как разбить это, чтобы я мог получить все задачи отдельно.

Я впервые работаю с API, поэтому любая помощь будет оценена.

1 Ответ

0 голосов
/ 07 ноября 2018

Вы можете использовать JsonUtility.FromJson, чтобы создать экземпляр класса, который вы определили для хранения данных:

public class Task
{
    public string title ;
    public int points;
    public int completed ;
}

public class APIResponse
{
    public int current_points ;
    public Task[] tasks;
}

// In your main code

private void OnJsonResponseReceived(string jsonString)
{
    UpdateUI( JsonUtility.FromJson<APIResponse>(jsonString) ) ;
}

public void UpdateUI(APIResponse response)
{
    Debug.Log( response.current_points ) ;
    for( int i = 0 ; i < response.tasks.Length ; ++i )
    {
        Debug.LogFormat("Task '{0}' ({2} points) is {3}", response.tasks[i]., response.tasks[i]., response.tasks[i].completed ? "completed" : "not completed" ) ;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...