json | 对象的 JSON 表示形式。 |
T 对象的实例。
从其 JSON 表示形式创建对象。
在内部,此方法使用 Unity 序列化程序;因此,您要创建的类型必须受序列化程序支持。它必须是一个使用 Serializable 属性标记的普通类/结构。对象的字段必须具有序列化程序支持的类型。具有不受支持类型的字段、私有字段或使用 NonSerialized 属性标记的字段将被忽略。
仅支持普通类和结构;从 UnityEngine.Object 派生的类(如 MonoBehaviour 或 ScriptableObject)不支持。请注意,从 MonoBehaviour 或 ScriptableObject 派生的类可以与JsonUtility.FromJsonOverwrite 一起使用作为替代方案。
如果 JSON 表示形式缺少任何字段,则将为其分配默认值(即,类型为 T 的字段将具有值 default(T) - 它不会被分配为字段初始化程序指定的任何值,因为对象的构造函数在反序列化期间不会执行)。
如果输入为 null 或为空,则 FromJson 返回 null。
接受字符串的此方法的版本可以从后台线程调用。接受 TextAsset 的版本必须从主线程调用。
using UnityEngine;
[System.Serializable] public class PlayerInfo { public string name; public int lives; public float health;
public static PlayerInfo CreateFromJSON(string jsonString) { return JsonUtility.FromJson<PlayerInfo>(jsonString); }
// Given JSON input: // {"name":"Dr Charles","lives":3,"health":0.8} // this example will return a PlayerInfo object with // name == "Dr Charles", lives == 3, and health == 0.8f. }
json | 对象的 JSON 表示形式。 |
type | Json 所表示的对象类型。 |
object 对象的实例。
从其 JSON 表示形式创建对象。
在内部,此方法使用 Unity 序列化程序;因此,您要创建的类型必须受序列化程序支持。它必须是一个使用 Serializable 属性标记的普通类/结构。对象的字段必须具有序列化程序支持的类型。具有不受支持类型的字段、私有字段或使用 NonSerialized 属性标记的字段将被忽略。
仅支持普通类和结构;从 UnityEngine.Object 派生的类(如 MonoBehaviour 或 ScriptableObject)不支持。请注意,从 MonoBehaviour 或 ScriptableObject 派生的类可以与JsonUtility.FromJsonOverwrite 一起使用作为替代方案。
如果 JSON 表示形式缺少任何字段,则将为其分配默认值(即,类型为 T 的字段将具有值 default(T) - 它不会被分配为字段初始化程序指定的任何值,因为对象的构造函数在反序列化期间不会执行)。
接受字符串的此方法的版本可以从后台线程调用。接受 TextAsset 的版本必须从主线程调用。