Unity 6.3
0 онлайн 8 гостей 3 в системе
Вход

JsonUtility

класс в UnityEngine

Выполнено в:UnityEngine.JSONSerializeModule

Описание

Предоставляет функции для преобразования между объектами и JSON данными.

С помощью этого класса можно получить представление объекта в формате JSON или заполнить объект из строки JSON. Это удобно при работе с веб-службами, которые отправляют и принимают данные JSON, а также когда объекты нужно перевести в сериализуемый вид — например, при сохранении состояния игры.

Функции используют стандартный сериализатор Unity, что означает, что они только сериализуют или десериялизуют поля на объекте, и только тогда, когда поля являются поддерживаемыми типами. Дополнительные сведения о сериализаторе Unity см. в Правила сериализации в инструкции Unity.

В следующем примере показано использование JsonUtility чтобы сохранить и загрузить состояние игры в PlayerPrefs.

using UnityEngine;
using System;
using System.Collections.Generic;

[Serializable] public class GameState { public int Lives; public int Level; public string CharacterName; public List<string> ItemsCarried; public const string PlayerPrefsKeyName = "SavedGameState";

public void SaveToPlayerPrefs() { // Convert this GameState instance to a JSON string string json = JsonUtility.ToJson(this);

// Save the converted JSON into the PlayerPrefs PlayerPrefs.SetString(PlayerPrefsKeyName, json); PlayerPrefs.Save(); }

public static GameState CreateFromPlayerPrefs() { // If the game was never saved before, the key will not exist; in this case return null if(!PlayerPrefs.HasKey(PlayerPrefsKeyName)) return null;

// Retrieve the saved JSON string from the player prefs string json = PlayerPrefs.GetString(PlayerPrefsKeyName);

// Deserialize the JSON string into a new GameState object and return it return JsonUtility.FromJson<GameState>(json); } }

Объект или тип, который вы передаете функциям, должен быть определенным вами пользовательским типом C#. Это не должен быть примитивный тип, такой как bool или string, или тип коллекции, такой как List<T>, или массив. Если вы хотите сериализовать коллекцию объектов в JSON, вы должны создать class или struct, членом которого является данная коллекция. Аналогичным образом, если вы хотите десериализовать строку JSON, эта строка JSON всегда должна иметь объект на верхнем уровне, а не массив.

Дополнительные ресурсы: EditorJsonUtility, json-serialization.

Статические методы

Метод Описание
FromJsonСоздать объект из его представления JSON.
FromJsonOverwriteПерезапись данных в объекте путем чтения из его представления JSON.
ToJsonФормирует представление открытых полей объекта в формате JSON.