unity解析json的兩種方式


一直比較鍾情於json,用來做數據交互,堪稱完美!下面簡單說一下unity使用C#腳本如何解析json數據吧。

一、寫解析類,借助於JsonUtility.FromJson

直接給個例子吧

1.json文件testJson.json內容,存儲位置/Users/lpp/Downloads/testJson.json

{
    "name":"小明",
    "age":20,
    "interests":["sing","run"]
}

2.c#解析類ModelTest.cs

[System.Serializable]
public class ModelTest
{
    public string name;
    public int age;
    public string[] interests;
}

3.測試腳本

using UnityEngine;
using System.IO;
using System.Text;

public class JsonTest : MonoBehaviour {

	// Use this for initialization
	void Start () {


		string jsonTest = File.ReadAllText("/Users/lpp/Downloads/testJson.json", Encoding.UTF8);
		ModelTest obj = JsonUtility.FromJson<ModelTest>(jsonTest);
		Debug.Log(obj.name);
		Debug.Log(obj.age);
		foreach (var inter in obj.interests)
		{
			Debug.Log(inter);
		}
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

4.輸出

二、使用Newtonsoft插件,無需解析類

網上下一個Newtonsoft.Json.dll,拖到Assets下某個位置,

上面同一個json,不再需要寫解析類了,解析方式如下:
using UnityEngine;
using System.IO;
using System.Text;
using Newtonsoft.Json.Linq;

public class JsonTest : MonoBehaviour {

	// Use this for initialization
	void Start () {

		string json = File.ReadAllText("/Users/lpp/Downloads/testJson.json", Encoding.UTF8);
		JObject obj = JObject.Parse(json);

		Debug.Log(obj["name"].ToString());
		Debug.Log(obj["age"].ToString());

		JArray ints = (JArray)obj["interests"];

		foreach (var inter in ints)
		{
			Debug.Log(inter);
		}
	}

}

  輸出同樣的內容。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM