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