Json作為輕量級的數據交換格式,被廣泛應用於網絡數據傳輸中。相關的解析工具層出不窮,一般掌握一個工具的應用其他的相應工具就能立馬學會。
這里以C#中的LitJson為例給大家示范一下解析工具的用法。當然在示范之前有必要說明一下Json的數據格式是怎么回事,才好理解相應的代碼。
Json格式必須遵循以下原則,不得違反——
一、必須以一個對象或者數組作為根節點;
例如:
以一個對象作為根節點 {"xx":"xx","xx":"xx","xx":{..},"xx":[]....}
以一個數組作為根節點 [{},{},...]
二、使用{}表示對象,[]表示數組,中間的屬性使用鍵值對的方式;
三、鍵值對的鍵必須使用雙引號“”包圍住;
四、鍵值對中的值可以是對象,數組,數字,字符串,true/false,null(空值);
遵循以上要點,下面開始Jason的解析工作:
第一步:在vs中首先添加LitJson引用(如下圖),使用的時候導入命名空間:using LitJson;
第二步:獲取要解析的文件,並書寫解析類
例如格式
[
{"id":1,"name":"第一式","damage":50},
{"id":2,"name":"第二式","damage":80},
{"id":3,"name":"第三式","damage":100}
]
解析類如下寫法:
public class Skill
{
public int id { set; get; }
public string name { set; get; }
public int damage { set; get; }
public override string ToString()
{
return string.Format("id:{0};name:{1};damage:{2}", id, name, damage);
}
}
注意事項:解析的屬性必須與json中的屬性完全一致,否則無法獲取數據;此處為了獲得輸出結果重寫tostring方法。
第三步:使用LitJson進行解析
//將解析的文本讀入一個字符串,如果是unity也是一樣
string str = File.ReadAllText("Skill.Json");
//要解析的是一個Skill類型的對象數組,使用泛型解析
Skill[] skillList = JsonMapper.ToObject<Skill[]>(str);
//通過foreach遍歷數組中的Skill元素並打印輸出
foreach (Skill item in skillList)
{
Console.WriteLine(item);
}