c#中json的簡單使用


JSON是存儲和交換文本信息的語法,類似XML。比XML更小,更快,更易解析,和XML一樣是一種數據格式。這里使用litjson簡單讀取一下文本信息。

方法1:使用JsonMapper.ToObject解析

創建一個txt用於存儲文本信息

json技能信息.txt

[

{"ID":1,"Name":"鳳舞九天","Damage":230},

{"ID":2,"Name":"光之束縛","Damage":125},

{"ID":3,"Name":"最后一擊","Damage":400}

]

程序中創建一個與json文本信息對應的Skill類:

class Skill
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int Damage { get; set; }


    public override string ToString()
    {
        return $"{nameof(ID)}: {ID}, {nameof(Name)}: {Name}, {nameof(Damage)}: {Damage}";
    }
}

 

Main中:

static void Main(string[] args)
{
    List<Skill> skillList = new List<Skill>();
    //使用litjson解析json文本
    //兩種引入Lisjson方式。1.官網下載dll程序集;2.右鍵引用,在管理netget程序包中下載
    //這里的jsondata代表一個數組
    JsonData jsondata = JsonMapper.ToObject(File.ReadAllText(@".\..\..\json技能信息.txt"));
    foreach (JsonData data in jsondata)//這里data代表一個對象
    {
        Skill skill = new Skill();
        JsonData IDValue = data["ID"];
        JsonData NameValue = data["Name"];
        JsonData DamageValue = data["Damage"];
        skill.ID = Int32.Parse(IDValue.ToString());
        skill.Name = NameValue.ToString();
        skill.Damage = Int32.Parse(DamageValue.ToString());
        skillList.Add(skill);
    }

    foreach (Skill skill in skillList)
    {
        Console.WriteLine(skill.ToString());
    }

    Console.ReadKey();
}

結果:

 

 

上面我們使用File.ReadAllText()方法傳入需要的文本信息,再使用JsonMapper來對文本進行解析最終解析好的數據存到“jsondata”里面然后“jsondata”里面的數據信息分別提取出來

參考博客:https://blog.csdn.net/qq_21726721/article/details/81124428

 

方法2:使用泛型JsonMapper.ToObject<>解析

依然使用上面的json文件,主程序中稍微修改一下:

Skill[] skillArray = JsonMapper.ToObject<Skill[]>(File.ReadAllText(@".\..\..\json技能信息.txt"));
foreach (Skill temp in skillArray)
{
    Console.WriteLine(temp);
}

結果同上。

使用這種方式需要將類的模型和json模型做好對應,使用該方式可以很簡易的得到json中的數據。

 

方法3

這次我們將json中的文本修改一下:

角色信息.txt

{

"Player":"花千骨",

"Level":100,

"SkillList":[

{"ID":1,"Name":"鳳舞九天","Damage":230},

{"ID":2,"Name":"光之束縛","Damage":125},

{"ID":3,"Name":"最后一擊","Damage":400}

]

}

由於json改變了,相應的我們也得重新寫一個PlayerInfo類:

class PlayerInfo
{
    public string Player { get; set; }
    public int Level { get; set; }
    public List<Skill> SkillList { get; set; }
}

Main中:

PlayerInfo playerinfo = JsonMapper.ToObject<PlayerInfo>(File.ReadAllText(@".\..\..\角色信息.txt"));
Console.WriteLine(playerinfo.Player);
Console.WriteLine(playerinfo.Level);
foreach (Skill temp in playerinfo.SkillList)
{
    Console.WriteLine(temp.ToString());
}
Console.ReadKey();

結果為:

 

 

這里推薦一個國內json的校驗和在線編輯網站:www.bejson.com

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM