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 может быть вызван из фоновых потоков.