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

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

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

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

首先在項(xiàng)目中引用第三方庫:Newtonsoft.Json

編寫模型類,定義Json結(jié)構(gòu)

//模型類,定義Json結(jié)構(gòu)
    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);
            }
        }

如果不需要分組可將序列化對(duì)象改為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)容寫進(jìn)jon文件中
        }

總結(jié) 

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

相關(guān)文章

  • c#實(shí)現(xiàn)flv解析詳解示例

    c#實(shí)現(xiàn)flv解析詳解示例

    本文提供的解析程序簡單的把FLV分解了出來,如果要做FLV的修改操作的話,可以給每個(gè)類加個(gè)toStream方法,再歷遍依次調(diào)用就可以寫回到文件里了
    2014-01-01
  • C#判斷系統(tǒng)是32位還是64位的方法

    C#判斷系統(tǒng)是32位還是64位的方法

    這篇文章主要介紹了C#判斷系統(tǒng)是32位還是64位的方法,實(shí)例分析了兩種常用的技巧供大家選擇使用,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 使用GPS經(jīng)緯度定位附近地點(diǎn)(某一點(diǎn)范圍內(nèi)查詢)

    使用GPS經(jīng)緯度定位附近地點(diǎn)(某一點(diǎn)范圍內(nèi)查詢)

    目前的工作是需要手機(jī)查找附近N米以內(nèi)的商戶,致想法是已知一個(gè)中心點(diǎn),一個(gè)半徑,求圓包含于圓拋物線里所有的點(diǎn),經(jīng)緯度是一個(gè)點(diǎn),半徑是一個(gè)距離,不能直接加減,下面提供C#的解決方法
    2013-12-12
  • C#遍歷文件夾及其子目錄的完整實(shí)現(xiàn)方法

    C#遍歷文件夾及其子目錄的完整實(shí)現(xiàn)方法

    這篇文章主要介紹了C#遍歷文件夾及其子目錄的方法,涉及C#文件與目錄的基本操作技巧,簡單實(shí)用,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • C#中if語句使用概述

    C#中if語句使用概述

    這里介紹C#使用if語句,C#使用if語句中的表達(dá)式必須放在一對(duì)圓括號(hào)中。除此之外,表達(dá)式必須是布爾表達(dá)式
    2014-03-03
  • C#生成指定范圍內(nèi)的不重復(fù)隨機(jī)數(shù)

    C#生成指定范圍內(nèi)的不重復(fù)隨機(jī)數(shù)

    對(duì)于隨機(jī)數(shù),大家都知道,計(jì)算機(jī)不 可能產(chǎn)生完全隨機(jī)的數(shù)字,所謂的隨機(jī)數(shù)發(fā)生器都是通過一定的算法對(duì)事先選定的隨機(jī)種子做復(fù)雜的運(yùn)算,用產(chǎn)生的結(jié)果來近似的模擬完全隨機(jī)數(shù),這種隨機(jī)數(shù)被稱 作偽隨機(jī)數(shù)。偽隨機(jī)數(shù)是以相同的概率從一組有限的數(shù)字中選取的。
    2015-05-05
  • DevExpress實(shí)現(xiàn)TreeList向上遞歸獲取符合條件的父節(jié)點(diǎn)

    DevExpress實(shí)現(xiàn)TreeList向上遞歸獲取符合條件的父節(jié)點(diǎn)

    這篇文章主要介紹了DevExpress實(shí)現(xiàn)TreeList向上遞歸獲取符合條件的父節(jié)點(diǎn),需要的朋友可以參考下
    2014-08-08
  • C#利用Random得隨機(jī)數(shù)求均值、方差、正態(tài)分布的方法

    C#利用Random得隨機(jī)數(shù)求均值、方差、正態(tài)分布的方法

    這篇文章主要介紹了C#利用Random得隨機(jī)數(shù)求均值、方差、正態(tài)分布的方法,涉及C#數(shù)學(xué)運(yùn)算及概率統(tǒng)計(jì)的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • C#創(chuàng)建Excel多級(jí)分組的方法

    C#創(chuàng)建Excel多級(jí)分組的方法

    這篇文章主要為大家詳細(xì)介紹了C#創(chuàng)建Excel多級(jí)分組的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • WPF中下拉框可作選擇項(xiàng)也可以作為只讀文本框使用的方法

    WPF中下拉框可作選擇項(xiàng)也可以作為只讀文本框使用的方法

    這篇文章主要給大家介紹了關(guān)于WPF中下拉框可以選擇項(xiàng)也可以作為只讀文本框使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-02-02

最新評(píng)論

莫力| 德庆县| 金坛市| 壶关县| 固原市| 长丰县| 纳雍县| 郑州市| 三都| 通城县| 东辽县| 凤山县| 景德镇市| 麦盖提县| 富顺县| 甘孜| 环江| 远安县| 九龙坡区| 正蓝旗| 青阳县| 廉江市| 台前县| 广饶县| 呼伦贝尔市| 米易县| 修水县| 花垣县| 武宁县| 阿克陶县| 那坡县| 福安市| 偏关县| 措勤县| 灵台县| 阿坝县| 敦化市| 三都| 理塘县| 开鲁县| 蕉岭县|