Объявление
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. Другие типы двигателей не поддерживаются. (Только в редакторе вы можете использовать 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}
}