Unity 6.3
0 онлайн 61 гостей 3 в системе
Вход

JsonUtility.FromJson

Declaration

public static T FromJson(string json);

Параметры

Параметр Описание
json-файл JSON представление объекта.

Возвращаемое значение

T Экземпляр объекта.

Описание

Создать объект из его представления JSON.

Внутренне, этот метод использует Unity Объект, который вы создаете, и все его поля должны соответствовать требованиям для сериализации, установленным Unity Полный перечень этих требований см. в разделе 2.1.1. Правила сериализации в руководстве.

FromJson поддерживает только простые классы и структуры. Он не поддерживает классы, полученные из UnityEngine.Object, например MonoBehaviour или ScriptableObject. Для десериализации данных в классы, полученные из MonoBehaviour или ScriptableObject, использование JsonUtility.FromJsonOverwrite вместо этого.

Инициализаторы полей и любая логика в конструкторе по умолчанию выполняются во время десериализации. После построения экземпляра поля, которые появляются в предоставленном JSON любые поля, отсутствующие в таблице, будут заменены на новые. JSON сохраняют свои значения в соответствии с назначением конструктора или инициализатора поля.

Если ввод является нулевым или пустым, FromJson возвращает null.

FromJson может быть вызван из фоновых потоков.

using UnityEngine;

public class FromJsonTest : MonoBehaviour { public static string completeJson = "{\"name\":\"Dr Charles\",\"lives\":3,\"health\":0.8}"; // Partial JSON, missing lives and health. In this example, these fields will get their values from the initializer and constructor respectively. public static string partialJson = "{\"name\":\"Dr Charles\"}";

void Start() { PlayerInfo player1 = PlayerInfo.CreateFromJSON(completeJson); Debug.Log("Player1 Name: " + player1.name); // Dr Charles Debug.Log("Player1 Lives: " + player1.lives); // 3 Debug.Log("Player1 Health: " + player1.health); // 0.8 PlayerInfo player2 = PlayerInfo.CreateFromJSON(partialJson); Debug.Log("Player2 Name: " + player2.name); // Dr Charles (from JSON) Debug.Log("Player2 Lives: " + player2.lives); // 2 (from initializer) Debug.Log("Player2 Health: " + player2.health); // 1 (from constructor) }

}

[System.Serializable] public class PlayerInfo { public string name = "Unknown"; public int lives = 2; public float health;

public PlayerInfo() { health = 1.0f; }

public static PlayerInfo CreateFromJSON(string jsonString) { return JsonUtility.FromJson<PlayerInfo>(jsonString); }

}

Declaration

public static object FromJson(string json, Type type);

Параметры

Параметр Описание
json-файл JSON представление объекта.
тип Тип объекта, представленного Json.

Возвращаемое значение

объект Экземпляр объекта.

Описание

Создать объект из его представления JSON.

Внутренне, этот метод использует Unity Объект, который вы создаете, и все его поля должны соответствовать требованиям для сериализации, установленным Unity Полный перечень этих требований см. в разделе 2.1.1. Правила сериализации в руководстве.

FromJson поддерживает только простые классы и структуры. Он не поддерживает классы, полученные из UnityEngine.Object, например MonoBehaviour или ScriptableObject. Для десериализации данных в классы, полученные из MonoBehaviour или ScriptableObject, использование JsonUtility.FromJsonOverwrite вместо этого.

Инициализаторы полей и любая логика в конструкторе по умолчанию выполняются во время десериализации. После построения экземпляра поля, которые появляются в предоставленном JSON любые поля, отсутствующие в таблице, будут заменены на новые. JSON сохраняют свои значения в соответствии с назначением конструктора или инициализатора поля.

FromJson может быть вызван из фоновых потоков.