版本: Unity 6 (6000.0)
语言英语
  • C#

JsonUtility.FromJson

建议修改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议修改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

声明

public static T FromJson(string json);

参数

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. }

声明

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

参数

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

返回值

object 对象的实例。

描述

从其 JSON 表示形式创建对象。

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

仅支持普通类和结构;从 UnityEngine.Object 派生的类(如 MonoBehaviour 或 ScriptableObject)不支持。请注意,从 MonoBehaviour 或 ScriptableObject 派生的类可以JsonUtility.FromJsonOverwrite 一起使用作为替代方案。

如果 JSON 表示形式缺少任何字段,则将为其分配默认值(即,类型为 T 的字段将具有值 default(T) - 它不会被分配为字段初始化程序指定的任何值,因为对象的构造函数在反序列化期间不会执行)。

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