在Unity中,序列化和反序列化是通过Unity自带的JsonUtility类来实现的。JsonUtility类提供了静态方法ToJson和FromJson,分别用于将对象序列化为JSON字符串和将JSON字符串反序列化为对象。
序列化示例代码:
using UnityEngine; [System.Serializable] public class PlayerData { public string playerName; public int playerLevel; public float playerHealth; } public class SerializationExample : MonoBehaviour { void Start() { PlayerData player = new PlayerData(); player.playerName = "Player1"; player.playerLevel = 1; player.playerHealth = 100f; string json = JsonUtility.ToJson(player); Debug.Log(json); } }
反序列化示例代码:
using UnityEngine; [System.Serializable] public class PlayerData { public string playerName; public int playerLevel; public float playerHealth; } public class DeserializationExample : MonoBehaviour { void Start() { string json = "{\"playerName\":\"Player1\",\"playerLevel\":1,\"playerHealth\":100}"; PlayerData player = JsonUtility.FromJson(json); Debug.Log("Player Name: " + player.playerName); Debug.Log("Player Level: " + player.playerLevel); Debug.Log("Player Health: " + player.playerHealth); } }
在上面的示例中,我们定义了一个PlayerData类来存储玩家的数据,然后通过JsonUtility.ToJson方法将PlayerData对象序列化为JSON字符串,再通过JsonUtility.FromJson方法将JSON字符串反序列化为PlayerData对象。最后我们可以通过访问PlayerData对象的属性来获取反序列化后的数据。