Version: 2021.3
public static string ToJson (object obj);
public static string ToJson (object obj, bool prettyPrint);

参数

obj 要转换为 JSON 形式的对象。
prettyPrint 如果为 true,则格式化输出以实现可读性。如果为 false,则格式化输出以实现最小大小。默认为 false。

返回

string JSON 格式的对象数据。

描述

生成对象的公共字段的 JSON 表示形式。

在内部,此方法使用 Unity 序列化器;因此传入的对象必须受序列化器支持:它必须是 MonoBehaviour、ScriptableObject 或应用了 Serializable 属性的普通类/结构。要包含的字段的类型必须受序列化器支持;不受支持的字段以及私有字段、静态字段和应用了 NonSerialized 属性的字段会被忽略。

支持任何普通类或结构,以及派生自 MonoBehaviour 或 ScriptableObject 的类。不支持其他引擎类型。(只能在 Editor 中使用 EditorJsonUtility.ToJson 将其他引擎类型序列化为 JSON)。

请注意,虽然可以将原始类型传递到此方法,但是结果可能不同于预期;此方法不会直接序列化,而是尝试序列化其公共实例字段,从而生成空对象作为结果。同样,将数组传递到此方法不会生成包含每个元素的 JSON 数组,而是生成一个对象,其中包含数组对象本身的公共字段(都无值)。若要序列化数组或原始类型的实际内容,需要将它放入类或结构中。

此方法可以从后台线程进行调用。在此函数仍在执行期间,不应更改传递给它的对象。

using UnityEngine;

public class PlayerState : MonoBehaviour { public string playerName; public int lives; public float health;

public string SaveToString() { return JsonUtility.ToJson(this); }

// Given: // playerName = "Dr Charles" // lives = 3 // health = 0.8f // SaveToString returns: // {"playerName":"Dr Charles","lives":3,"health":0.8} }