Version: 2022.2
public static T FromJson (string json);

参数

json 对象的 JSON 表示形式。

返回

T 对象的实例。

描述

通过 JSON 表示形式创建对象。

在内部,此方法使用 Unity 序列化器;因此创建的类型必须受序列化器支持。它必须是使用 Serializable 属性标记的普通类/结构。对象的字段必须具有序列化器支持的类型。类型不受支持的字段以及私有字段或使用 NonSerialized 属性标记的字段会被忽略。

Only plain classes and structures are supported; classes derived from UnityEngine.Object (such as MonoBehaviour or ScriptableObject) are not. Note that classes derived from MonoBehaviour or ScriptableObject can be used with JsonUtility.FromJsonOverwrite as an alternative.

如果 JSON 表示形式缺少任何字段,则向这些字段提供其默认值(即,类型为 T 的字段会具有值 default(T) - 不会向它提供任何作为字段初始化函数指定的值,因为对象的构造函数在反序列化过程中不会执行)。

If the input is null or empty, FromJson returns 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. }

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

参数

json 对象的 JSON 表示形式。
type 由 Json 表示的对象类型。

返回

object 对象的实例。

描述

通过 JSON 表示形式创建对象。

在内部,此方法使用 Unity 序列化器;因此创建的类型必须受序列化器支持。它必须是使用 Serializable 属性标记的普通类/结构。对象的字段必须具有序列化器支持的类型。类型不受支持的字段以及私有字段或使用 NonSerialized 属性标记的字段会被忽略。

Only plain classes and structures are supported; classes derived from UnityEngine.Object (such as MonoBehaviour or ScriptableObject) are not. Note that classes derived from MonoBehaviour or ScriptableObject can be used with JsonUtility.FromJsonOverwrite as an alternative.

如果 JSON 表示形式缺少任何字段,则向这些字段提供其默认值(即,类型为 T 的字段会具有值 default(T) - 不会向它提供任何作为字段初始化函数指定的值,因为对象的构造函数在反序列化过程中不会执行)。

此方法采用字符串的版本可以从后台线程进行调用。采用 TextAsset 的版本必须从主线程进行调用。