最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)讀取寫入Json文件

 更新時間:2023年01月25日 16:12:11   作者:暗夜__  
這篇文章主要介紹了C#實現(xiàn)讀取寫入Json文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

C#讀取寫入Json文件

    /// <summary>
    /// 將序列化的json字符串內(nèi)容寫入Json文件,并且保存
    /// </summary>
    /// <param name="path">路徑</param>
    /// <param name="jsonConents">Json內(nèi)容</param>
    private void WriteJsonFile(string path, string jsonConents)
    {
        File.WriteAllText(path, jsonConents, System.Text.Encoding.UTF8);
    }

    /// <summary>
    /// 獲取到本地的Json文件并且解析返回對應(yīng)的json字符串
    /// </summary>
    /// <param name="filepath">文件路徑</param>
    /// <returns></returns>
    private string GetJsonFile(string filepath)
    {
        string json = string.Empty;
        using (FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite))
        {
            using (StreamReader sr = new StreamReader(fs, Encoding.UTF8))
            {
                json = sr.ReadToEnd().ToString();
            }
        }
        return json;
    }
    /// <summary>
    /// 對象 轉(zhuǎn)換為Json字符串
    /// </summary>
    /// <param name="tablelList"></param>
    /// <returns></returns>
    public string toJson(object tablelList)
    {
        DataContractJsonSerializer json = new DataContractJsonSerializer(tablelList.GetType());
        string finJson = "";
        //序列化
        using (MemoryStream stream = new MemoryStream())
        {
            json.WriteObject(stream, tablelList);
            finJson = Encoding.UTF8.GetString(stream.ToArray());

        }
        Debug.Log(tablelList + "JSON數(shù)據(jù)為:" + finJson);
        return finJson;
    }

將數(shù)據(jù)寫入Json文件中

部分邏輯代碼

? //需要寫入Json文件中的數(shù)據(jù)集合
? List<MonsterSpawnPoint> MonsterPos = new List<MonsterSpawnPoint>();
? //轉(zhuǎn)為string 字符串
? ? string text = toJson(MonsterPos);
? ? //寫入Json文件 ?filepath文件路徑?
? ? string filepath=Path.Combine(Application.dataPath, "../", "Config_NPC.json");
? ? ? ?WriteJsonFile(filepath, text);

  

Json文件

[
? {
? ? "Direction": 0,
? ? "Index": 9,
? ? "PositionX": 28,
? ? "PositionY": 10,
? ? "PositionZ": 20
? },
? {
? ? "Direction": 0,
? ? "Index": 9,
? ? "PositionX": 40,
? ? "PositionY": 10,
? ? "PositionZ": 18
? },
? {
? ? "Direction": 0,
? ? "Index": 4,
? ? "PositionX": 21,
? ? "PositionY": 10,
? ? "PositionZ": -8
? },
? {
? ? "Direction": 0,
? ? "Index": 4,
? ? "PositionX": 40,
? ? "PositionY": 10,
? ? "PositionZ": -13
? }
]

讀取Json文件

Json對應(yīng)的數(shù)據(jù)結(jié)構(gòu)

public class MonsterSpawnPoint 
{
    public long Index;//怪物索引 
    public int PositionX;//怪物X坐標(biāo)
    public int PositionY;//怪物Y坐標(biāo)
    public int PositionZ;//怪物Z坐標(biāo)
    public int Direction;
}
//讀取指定數(shù)據(jù)集合Json
  MonsterSpawnPoint[] monsterPoints = LitJson.JsonMapper.ToObject<MonsterSpawnPoint[]>(GetJsonFile(filepath));
  //讀取Json 通過字符串 索引取得Json表中的值
  LitJson.JsonData jsonData = LitJson.JsonMapper.ToObject(GetJsonFile(fillePath));
   foreach (JsonData item in jsonData)
        {
            JsonData id_data = item["Id"];//通過字符串 索引取得鍵值對的值
            JsonData name_data = type == InitType.Monster ? item["Name"] : item["NPCName"];//通過字符串 索引取得鍵值對的值
            tempData = new Dropdown.OptionData();
            tempData.text = $"[{id_data}]{name_data}";
        
        }

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# 數(shù)據(jù)庫鏈接字符串加密解密工具代碼詳解

    C# 數(shù)據(jù)庫鏈接字符串加密解密工具代碼詳解

    本文通過代碼給大家介紹C# 數(shù)據(jù)庫鏈接字符串加密解密工具的相關(guān)知識,實現(xiàn)思路大概是使用兩個數(shù)對連接字符串進(jìn)行加密,再用這兩個數(shù)進(jìn)行解密,具體詳細(xì)代碼,大家參考下本文
    2018-05-05
  • C#實現(xiàn)泛型List分組輸出元素的方法

    C#實現(xiàn)泛型List分組輸出元素的方法

    這篇文章主要介紹了C#實現(xiàn)泛型List分組輸出元素的方法,涉及C#針對List的遍歷、排序、輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • 5分鐘用C#實現(xiàn)串口助手

    5分鐘用C#實現(xiàn)串口助手

    本文主要介紹了C#實現(xiàn)串口助手,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C#開啟線程的四種示例

    C#開啟線程的四種示例

    這篇文章主要介紹了C#開啟線程的四種方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-10-10
  • C#語法新特性之元組實例詳解

    C#語法新特性之元組實例詳解

    元組(Tuple)在4.0 的時候就有了,但元組也有些缺點,具體那些缺點,本文給大家介紹的非常詳細(xì),本文重點給大家C#語法新特征之元組,感興趣的朋友一起學(xué)習(xí)吧
    2017-04-04
  • c++ STL之list對結(jié)構(gòu)體的增加,刪除,排序等操作詳解

    c++ STL之list對結(jié)構(gòu)體的增加,刪除,排序等操作詳解

    這篇文章主要介紹了c++ STL之list對結(jié)構(gòu)體的增加,刪除,排序等操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C#實現(xiàn)二叉查找樹

    C#實現(xiàn)二叉查找樹

    本文詳細(xì)講解了C#實現(xiàn)二叉查找樹的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#使用ODBC與OLEDB連接數(shù)據(jù)庫的方法示例

    C#使用ODBC與OLEDB連接數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了C#使用ODBC與OLEDB連接數(shù)據(jù)庫的方法,結(jié)合實例形式分析了C#基于ODBC與OLEDB實現(xiàn)數(shù)據(jù)庫連接操作簡單操作技巧,需要的朋友可以參考下
    2017-05-05
  • C#實現(xiàn)簡單的天氣預(yù)報示例代碼

    C#實現(xiàn)簡單的天氣預(yù)報示例代碼

    這篇文章主要介紹了C#實現(xiàn)簡單的天氣預(yù)報示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • C#接口在派生類和外部類中的調(diào)用方法示例

    C#接口在派生類和外部類中的調(diào)用方法示例

    這篇文章主要介紹了C#接口在派生類和外部類中的調(diào)用方法,結(jié)合實例形式分析了C#接口的定義與具體使用方法,需要的朋友可以參考下
    2017-02-02

最新評論

和顺县| 织金县| 广西| 旅游| 双流县| 翁牛特旗| 湖北省| 江山市| 黄浦区| 湟中县| 云阳县| 启东市| 深泽县| 田林县| 阿拉善左旗| 沈丘县| 永吉县| 嘉峪关市| 长乐市| 柞水县| 巴塘县| 仪征市| 博客| 德安县| 临桂县| 焉耆| 吉林省| 平果县| 绍兴县| 东乌珠穆沁旗| 乐亭县| 临漳县| 平湖市| 平凉市| 固安县| 泗阳县| 大余县| 保靖县| 四会市| 隆林| 青海省|