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

C#實現(xiàn)Json文件讀寫的方法代碼

 更新時間:2023年11月27日 15:21:42   作者:KsirZz  
這篇文章主要給大家介紹了關于C#實現(xiàn)Json文件讀寫的相關資料,C# 讀取JSON文件并讀取某一個關鍵字的值可以使用Newtonsoft.Json庫,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

JSON是一種輕量級的數(shù)據(jù)交換格式。它基于 ECMAScript的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰的層次結構使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡傳輸效率。

首先在項目中引用第三方庫:Newtonsoft.Json

編寫模型類,定義Json結構

//模型類,定義Json結構
    public class BaseModel
    {
        public List<ModelData> list_groupA { get; set; } = new List<ModelData>();
        public List<ModelData> list_groupB { get; set; } = new List<ModelData>();
        public List<ModelData> list_groupC { get; set; } = new List<ModelData>();
    }

    public class ModelData
    {
        public ModelData(int iD, int pointX, int pointY, string groupName)
        {
            ID = iD;
            PointX = pointX;
            PointY = pointY;
            GroupName = groupName;
        }

        public int ID { get; set; }
        public int PointX { get; set; }
        public int PointY { get; set; }
        public string GroupName { get; set; }
    }

序列化Json字符串,并保存文件

public void SaveToFile(string filePath)
        {
            if (filePath != "")
            {
                List<ModelData> list = new List<ModelData>(100);

                for (int i = 1; i <= 100; i++)
                {
                    if (i < 50)
                    {
                        list.Add(new ModelData(i, 10, 10, "集合A"));
                    }
                    else if (i >= 50 && i < 75)
                    {
                        list.Add(new ModelData(i, 20, 20, "集合B"));
                    }
                    else
                    {
                        list.Add(new ModelData(i, 30, 30, "集合C"));
                    }
                }
                BaseModel model = new BaseModel();
                model.list_groupA = list.Where(x => x.GroupName == "集合A").ToList();
                model.list_groupB = list.Where(x => x.GroupName == "集合B").ToList();
                model.list_groupC = list.Where(x => x.GroupName == "集合C").ToList();
                string json2 = JsonConvert.SerializeObject(model);
                WriteJsonFile(filePath, json2);
            }
        }

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

如果不需要分組可將序列化對象改為list,即:

string json2 = JsonConvert.SerializeObject(list);

讀取文本字符串反序列化,獲取指定字段值

public void ReadJsonFile(string readFilePath)
        {
            if (File.Exists(readFilePath))
            {
                //獲取文件內(nèi)容
                string readString = File.ReadAllText(readFilePath);
                //反序列化:單組
                /*JArray ja = (JArray)JsonConvert.DeserializeObject(readString);
                int jaCount = ja.Count;
                ja[0]["PinHight"].ToString();*/
                //反序列化
                JObject jo = JsonConvert.DeserializeObject<JObject>(readString);
                int joCount = jo.Count;
                //獲取指定位置值
                int str = jo["list_groupA"][0].Value<int>("ID");
            }
        }

讀取Json文件,更新字段

/// <summary>
        /// 更新字段
        /// </summary>
        /// <param name="fileName"></param>
        public void UpdateJsonFile(string fileName)
        {
            string jsonString = File.ReadAllText(fileName, System.Text.Encoding.UTF8);//讀取文件
            JObject jobject = JObject.Parse(jsonString);//解析成json
            jobject["list_student"][0]["ID"] = 111;//替換需要的文件
            string convertString = Convert.ToString(jobject);//將json裝換為string
            File.WriteAllText(fileName, convertString, System.Text.Encoding.UTF8);//將內(nèi)容寫進jon文件中
        }

總結 

到此這篇關于C#實現(xiàn)Json文件讀寫的文章就介紹到這了,更多相關C# Json文件讀寫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C# Record關鍵字示例詳解

    C# Record關鍵字示例詳解

    C#9.0引入record關鍵字,用于定義不可變且專注于數(shù)據(jù)表示的記錄類型,記錄類型自動生成構造函數(shù)、ToString、Equals和GetHashCode方法,并支持不可變性和可變性,適用于數(shù)據(jù)傳輸對象、不可變數(shù)據(jù)結構和配置對象等場景,本文介紹C# Record關鍵字,感興趣的朋友一起看看吧
    2025-01-01
  • C# 中用 Sqlparameter 的兩種用法

    C# 中用 Sqlparameter 的兩種用法

    這篇文章主要介紹了C# 中用 Sqlparameter 的幾種用法,文中給大家列舉了兩種用法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • C#連接MySql數(shù)據(jù)庫的方法

    C#連接MySql數(shù)據(jù)庫的方法

    最近兩天在解決C#連接MySql數(shù)據(jù)庫的問題,通過不同的從網(wǎng)上學習,最終找到了解決的辦法,現(xiàn)在和大家分享一下
    2013-10-10
  • C#實現(xiàn)對文件進行加密保護的示例代碼

    C#實現(xiàn)對文件進行加密保護的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)對文件進行加密保護的功能,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#中LINQ的Select與SelectMany函數(shù)使用

    C#中LINQ的Select與SelectMany函數(shù)使用

    這篇文章主要介紹了C#中LINQ的Select與SelectMany函數(shù)使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • c# EnumHelper枚舉常用操作類

    c# EnumHelper枚舉常用操作類

    在項目中需要把枚舉填充到下拉框中,所以使用統(tǒng)一的方法實現(xiàn),測試代碼如下,需要的朋友可以參考下
    2016-11-11
  • C#枚舉類型和結構體詳解

    C#枚舉類型和結構體詳解

    這篇文章主要為大家詳細介紹了C#枚舉類型和結構體,,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • C#使用CefSharp自定義緩存實現(xiàn)

    C#使用CefSharp自定義緩存實現(xiàn)

    本文介紹了如何使用C#和CefSharp自定義緩存實現(xiàn)減少Web應用程序的網(wǎng)絡請求,提高應用程序性能。首先,本文講解了CefSharp的基本知識和使用方法。然后,詳細闡述了在CefSharp中實現(xiàn)自定義緩存的步驟和技巧。最后,通過實例演示了如何使用自定義緩存功能獲取并展示網(wǎng)頁數(shù)據(jù)
    2023-04-04
  • 最新評論