欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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#的正則表達(dá)式驗證中文字符(實例代碼)

    使用C#的正則表達(dá)式驗證中文字符(實例代碼)

    本文通過實例代碼給大家介紹了使用C#的正則表達(dá)式驗證中文字符的方法,需要的的朋友參考下吧
    2017-07-07
  • 使用C#實現(xiàn)在屏幕上畫圖效果的代碼實例

    使用C#實現(xiàn)在屏幕上畫圖效果的代碼實例

    本篇文章是對使用C#在屏幕上畫圖效果的實現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#中緩存的基本用法總結(jié)

    C#中緩存的基本用法總結(jié)

    這篇文章主要介紹了C#中緩存的基本用法,對C#初學(xué)者來說是很有必要熟練掌握的內(nèi)容,需要的朋友可以參考下
    2014-08-08
  • C#實現(xiàn)軟件開機自啟動的示例代碼

    C#實現(xiàn)軟件開機自啟動的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)軟件開機自啟動,且不需要管理員權(quán)限,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下
    2023-07-07
  • Datagridview使用技巧(9)Datagridview的右鍵菜單

    Datagridview使用技巧(9)Datagridview的右鍵菜單

    這篇文章主要為大家詳細(xì)介紹了Datagridview使用技巧,Datagridview的右鍵菜單,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 淺談C# StringBuilder內(nèi)存碎片對性能的影響

    淺談C# StringBuilder內(nèi)存碎片對性能的影響

    這篇文章主要介紹了淺談StringBuilder內(nèi)存碎片對性能的影響,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Quartz.Net使用方法詳解

    Quartz.Net使用方法詳解

    本文詳細(xì)講解了Quartz.Net的使用方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C#匹配中文字符串的4種正則表達(dá)式分享

    C#匹配中文字符串的4種正則表達(dá)式分享

    這篇文章主要介紹了C#匹配中文字符串的4種正則表達(dá)式分享,本文介紹了4種形式下的中文字符串匹配正則,需要的朋友可以參考下
    2014-08-08
  • c# 線性回歸和多項式擬合示例詳解

    c# 線性回歸和多項式擬合示例詳解

    線性回歸與多項式擬合是兩種常用的回歸分析方法,線性回歸模型簡單,易于計算,但只適用于線性關(guān)系的數(shù)據(jù),多項式擬合能處理非線性數(shù)據(jù),模型更復(fù)雜,擬合度更高,但容易產(chǎn)生過擬合問題,計算成本較高,適用場景不同,線性回歸適合線性數(shù)據(jù),多項式擬合適合非線性數(shù)據(jù)
    2024-10-10
  • C#獲取指定PDF文件頁數(shù)的方法

    C#獲取指定PDF文件頁數(shù)的方法

    這篇文章主要介紹了C#獲取指定PDF文件頁數(shù)的方法,涉及C#操作pdf文件的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04

最新評論