1. 程式人生 > >Unity的Json解析–寫Json檔案

Unity的Json解析–寫Json檔案

Unity的Json解析<二>–寫Json檔案

本章對Json的寫檔案,做個處理.
寫檔案也非常簡單,把大象裝冰箱一樣,分三步,
建立檔案,
把內容寫入檔案,
然後關閉檔案.

內容

我們要處理的是所寫的內容,我們打算寫什麼都Json檔案中呢?
我們打算把昨天的格式繼續利用,還記得GameStatus ,這個是我修改的.不過,還算好用啊.
GameStatus.cs檔案程式碼如下:

using UnityEngine;
using System;
using System.Collections;

[Serializable]
public class
GameStatus { public string gameName; public string version; public bool isStereo; public bool isUseHardWare; public refencenes[] statusList; } [Serializable] public class refencenes { public refencenes() { name = ""; id = -1; } public string name; public
int id; }

寫Json格式

寫JSon格式呢,我看網上都用的BinaryFormatter來處理,但是我發現這個跟昨天的問題型別,要是用BinaryFormatter的話,等儲存好的Json文字開啟後,各種空格,NULL和亂碼.這個主要是編碼格式的問題.
所以,我拒絕使用它了.

我使用File,直接WriteALLText來處理.

程式碼如下:

    public void SaveJson()
    {
        string json = JsonUtility.ToJson(gameStatus);
        string savePath = Application.dataPath + "/Resources/Test01.json"
; File.WriteAllText(savePath, json, Encoding.UTF8); Debug.Log("save:::" + savePath); }

這樣就完成了寫檔案是否很簡便呢??!!!

寫Json的完整程式碼

完整程式碼如下:

using UnityEngine;
using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;

public class WriteJson : MonoBehaviour
{
    public GameStatus gameStatus;
    public GameObject[] objects;
    void Start()
    {
        gameStatus = new GameStatus();
        gameStatus.statusList = new refencenes[objects.Length];
        gameStatus.gameName = "JSON Write Test";

        for (int i = 0; i < objects.Length; i++)
        {
            gameStatus.statusList[i] = new refencenes(); 
            gameStatus.statusList[i].id = i;
            gameStatus.statusList[i].name = objects[i].name;
        }
    }

    public void SaveJson()
    {
        string json = JsonUtility.ToJson(gameStatus);
        string savePath = Application.dataPath + "/Resources/Test01.json";
        File.WriteAllText(savePath, json, Encoding.UTF8);        

        Debug.Log("save:::" + savePath);
    }
}

怎麼使用?

我建立了一個測試工程.
只能如圖了:
Json讀

你依然可以看到昨天寫檔案的痕跡.

當然我們只關注寫Json了.

在writeJson的屬性面板上,可看到,給它的Objects拖拽了一個cube,一個Capsule,作為儲存到JSon檔案中的內容的一部分.

然後在執行Unity 編輯器時,按下”S”,儲存鍵,就會在當前工程下的\Assets\Resources\中,產生了一個Test01.json的檔案,這個程式碼中可以看到的,你可隨意修改.

結果

讓我們來看看我們都保持都Json檔案中了什麼東西.

{"gameName":"JSON Write Test","version":"","isStereo":true,"isUseHardWare":false,"statusList":[{"name":"Cube","id":0},{"name":"Capsule","id":1}]}

這就是你所儲存的Json檔案中的內容.

我打算上傳都github,但是現在我github一直讓更新,更新不成功,打不開啊!

留下地方吧!!

**

至此,Json檔案的讀寫都搞定了.

更多

關於Json檔案的使用,我打算嘗試一個,能不能做個更好的配置,比如控制遊戲的場景配置和遊戲流程.打包後面不用修改,直接修改json 就可以建立一個完全不一樣的遊戲了.
這樣,是不是比較蠢呢!!可能會,比較複雜吧!!
只個想法,若有興趣,看看能不能實現一下.

———THE—–END————————–
若有問題,請隨時聯絡!!
非常感謝!!!