国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Unity 3D】C#從JSON文件中讀取、解析、保存數(shù)據(jù)(附源碼)

這篇具有很好參考價值的文章主要介紹了【Unity 3D】C#從JSON文件中讀取、解析、保存數(shù)據(jù)(附源碼)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

JSON是一種輕量級的數(shù)據(jù)交換格式,采用完全獨立于編程語言的文本格式存儲和表示數(shù)據(jù),簡潔和清晰的層次結(jié)構(gòu)使JSON成為理想的數(shù)據(jù)交換語言,易于讀者閱讀和編寫,同時也易于機(jī)器解析和生成,并有效的提高網(wǎng)絡(luò)傳輸效率

1:寫入JSON數(shù)據(jù)

生成JSON數(shù)據(jù)實例代碼如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test_15_1 : MonoBehaviour
{
    void Start()
    {
        WriteData();
    }

    //寫數(shù)據(jù)
    public void WriteData()
    {
        //新建一個數(shù)據(jù)類
        Data m_Data = new Data();
        //新建一個字段類 進(jìn)行賦值
        m_Data.Person = new Person[3];
        //添加數(shù)據(jù)
        Person p1 = new Person();
        p1.Name = "張三";
        p1.Grade = 98;
        m_Data.Person[0] = p1;
        Person p2 = new Person();
        p2.Name = "李四";
        p2.Grade = 95;
        m_Data.Person[1] = p2;
        Person p3 = new Person();
        p3.Name = "王五";
        p3.Grade = 97;
        m_Data.Person[2] = p3;
        //將數(shù)據(jù)轉(zhuǎn)成json
        string js = JsonUtility.ToJson(m_Data);
        //顯示Json數(shù)據(jù)
        Debug.Log(js);
    }
}
[System.Serializable]
class Person
{
    public string Name;
    public int Grade;
}
[System.Serializable]
class Data
{
    public Person[] Person;
}

2:將JSON數(shù)據(jù)保存到本地文件夾

下面的代碼將JSON中數(shù)據(jù)以文本格式保存到本地文件夾

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test_15_2 : MonoBehaviour
{
    void Start()
    {
        WriteData();
    }

    //寫數(shù)據(jù)
    public void WriteData()
    {
        //新建一個數(shù)據(jù)類
        Data m_Data = new Data();
        //新建一個字段類 進(jìn)行賦值
        m_Data.Person = new Person[3];
        //添加數(shù)據(jù)
        Person p1 = new Person();
        p1.Name = "張三";
        p1.Grade = 98;
        m_Data.Person[0] = p1;
        Person p2 = new Person();
        p2.Name = "李四";
        p2.Grade = 95;
        m_Data.Person[1] = p2;
        Person p3 = new Person();
        p3.Name = "王五";
        p3.Grade = 97;
        m_Data.Person[2] = p3;
        //將數(shù)據(jù)轉(zhuǎn)成json
        string js = JsonUtility.ToJson(m_Data);
        //保存到 C盤的 Temp文件夾
//下面的代碼改變保存路徑即可
        string fileUrl = @"c:\Temp\jsonInfo.txt";
        //打開或者新建文檔
        StreamWriter sw = new StreamWriter(fileUrl);
        //保存數(shù)據(jù)
        sw.WriteLine(js);
        //關(guān)閉文檔
        sw.Close();
    }
}
[System.Serializable]
class Person
{
    public string Name;
    public int Grade;
}
[System.Serializable]
class Data
{
    public Person[] Person;
}

3:讀取JSON數(shù)據(jù)

讀取JSON數(shù)據(jù)用到了之前講解過的文件的輸入與輸出,將使用StreamReader從文件夾中讀取流數(shù)據(jù)

using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test_15_3 : MonoBehaviour
{
    void Start()
    {
        string jsonData = ReadData();
        Debug.Log(jsonData);
    }
    //讀取文件
    public string ReadData()
    {
        //獲取到路徑
        string fileUrl = @"c:\Temp\jsonInfo.txt";
        //讀取文件
        StreamReader str = File.OpenText(fileUrl);
        //string類型的數(shù)據(jù)常量
        //數(shù)據(jù)保存
        string readData = str.ReadToEnd();
        str.Close();
        //返回數(shù)據(jù)
        return readData;
    }
}

4:解析JSON數(shù)據(jù)

解析JSON數(shù)據(jù),需要生成與JSON數(shù)據(jù)類型相同的字段,如果JSON數(shù)據(jù)中有字段Person,Name,Grade,Person字段是一個數(shù)組,那么根節(jié)點就是一個帶有Person數(shù)組字段的類,然后這個Person字段本身也是一個類,里面有Name和Grade字段 解析JSON數(shù)據(jù)代碼如下

using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test_15_4 : MonoBehaviour
{
    void Start()
    {
        //首先獲取到j(luò)son數(shù)據(jù)
        string json = ReadData();
        //將json數(shù)據(jù)傳遞給ParseData函數(shù)進(jìn)行解析
        ParseData(json);
    }

    //讀取文件
    public string ReadData()
    {
        //獲取到路徑
        string fileUrl = @"c:\Temp\jsonInfo.txt";
        //讀取文件
        StreamReader str = File.OpenText(fileUrl);
        //string類型的數(shù)據(jù)常量
        //數(shù)據(jù)保存
        string readData = str.ReadToEnd();
        str.Close();
        //返回數(shù)據(jù)
        return readData;
    }

    //解析Json數(shù)據(jù)
    public void ParseData(string jsonData)
    {
        //數(shù)據(jù)解析并把數(shù)據(jù)保存到m_PersonData1 變量中
        Data m_PersonData = JsonUtility.FromJson<Data>(jsonData);
        foreach (var item in m_PersonData.Person)
        {
            Debug.Log(item.Name);
            Debug.Log(item.Grade);
        }
    }
}

創(chuàng)作不易 覺得有幫助請點贊關(guān)注收藏~~~文章來源地址http://www.zghlxwxcb.cn/news/detail-504627.html

到了這里,關(guān)于【Unity 3D】C#從JSON文件中讀取、解析、保存數(shù)據(jù)(附源碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包