Json的介紹可以看這兩篇文章:
2.瞭解JSON格式(這篇文章有鎖左鍵和右鍵)
在這邊我只處理JSON的「資料存入」和「讀取」
使用LitJson來處理Json的資料(下載點)
點選dll下載
請將下載的dll檔放在專案的Plugins資料夾內(沒有該資料夾就自行新增)
然後新增一個 C# script 並命名為JsonPractice
開始撰寫程式碼:
using LitJson;
using System.IO;
using System.Text;
using UnityEngine;
public class JsonPractice : MonoBehaviour
{
private string path = @"D:\test.json";//輸出的檔案路徑和檔名,其實副檔名可隨意
void OnGUI()
{
if (GUILayout.Button("WriteJson") == true)
{
outputJsonFile(writeJson(new string[] { "Name", "Age" }, new string[] { "Yang", "21" }));//編寫Json檔並輸出檔案
}
if (GUILayout.Button("ReadJson") == true)
{
readJson(loadJsonFile());//載入Json檔並讀取內部資訊
}
}
private string writeJson(string[] key, string[] value)
{
if (key.Length != value.Length)
{
throw new System.Exception("key.Length != value.Length");
}
StringBuilder sb = new StringBuilder();//若字串會被修改,則建議使用StringBuilder,速度比String還快。(可以自行google搜尋這兩者的差異)
JsonWriter jw = new JsonWriter(sb);//資料將會寫在sb內
jw.WriteArrayStart();//寫入"["到sb內
jw.WriteObjectStart();//寫入"{"到sb內
for (int i=0; i<key.Length; i++)
{
jw.WritePropertyName(key[i]);
jw.Write(value[i]);
}
jw.WriteObjectEnd();//寫入"}"到sb內
jw.WriteArrayEnd();//寫入"]"到sb內
return sb.ToString();
}
private void readJson(string jsonStr)
{
JsonReader jr = new JsonReader(jsonStr.ToString());
while(jr.Read() == true)//連續讀取資料直到讀取完畢
{
if (jr.Value != null)//若有資料,則開始列印
{
Debug.Log(jr.Value);//列印出讀取到的資料
}
}
}
private void outputJsonFile(string sb)
{
using (StreamWriter sw = new StreamWriter(path, true))//將資料寫入,若原先已有資料則寫在原先資料的後面
{
sw.WriteLine(sb);//將資料寫入
}
}
private string loadJsonFile()
{
StringBuilder sbJson = new StringBuilder();//用來儲存讀入的Json內容
using (StreamReader sr = new StreamReader(path))
{
sbJson.Append(sr.ReadToEnd());//一次性將資料全部讀入
}
return sbJson.ToString();
}
}
然後我將其拖曳到Camera上
執行!
先按下WriteJson產生並寫入檔案
此時到指定路徑看看,可以發現已經產生了Json檔案(可用記事本開啟看看內部資訊)
若是按下ReadJson,則可讀取內部資訊

不好意思 我想請教如何直接將讀取的資料載入進UItext裡面更改文字
那你應該去查如何修改UItext文字的方法,而不是在Json這邊問