Json反序列化
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
namespace JLSH
{
[Serializable]
public class MyJsonClass
{
public int level;
public float timeElapsed;
public string playerName;
}
class Test : MonoBehaviour
{
int[] myarray;
int a = 1;
void Start()
{
MyJsonClass myObject = new MyJsonClass();
myObject.level = 1;
myObject.timeElapsed = 47.5f;
myObject.playerName = "Dr Charles Francis";
//得到json 最小size字符串
string json = JsonUtility.ToJson(myObject);
//得到json 可读性字符串
string json2 = JsonUtility.ToJson(myObject);
Debug.Log("json =- > " + json);
//FromJson 根据json字符串来生成一个object
MyJsonClass myObject2 = JsonUtility.FromJson<MyJsonClass>(json) as MyJsonClass;
Debug.Log("myObject2.level = " + myObject2.level + " myObject2.timeElapsed = " + myObject2.timeElapsed + " myObject2.playerName" + myObject2.playerName);
//修改值
myObject2.level = 2;
Debug.Log("myObject2.level = " + myObject2.level + " myObject2.timeElapsed = " + myObject2.timeElapsed + " myObject2.playerName" + myObject2.playerName);
//通过json字符串来重新为GameObject赋值
JsonUtility.FromJsonOverwrite(JsonUtility.ToJson(myObject), myObject2);
Debug.Log("myObject2.level = " + myObject2.level + " myObject2.timeElapsed = " + myObject2.timeElapsed + " myObject2.playerName" + myObject2.playerName);
MyJsonClass myObject3 = new MyJsonClass();
//通过json字符串来初始化一个GameObject的值
JsonUtility.FromJsonOverwrite(JsonUtility.ToJson(myObject), myObject3);
Debug.Log("myObject3.level = " + myObject3.level + " myObject3.timeElapsed = " + myObject3.timeElapsed + " myObject3.playerName" + myObject3.playerName);
}
}
}
结果: