天天看點

c#(操作json檔案)

c#

  • 概:害,又是老懶鬼的筆記,多的操作一個都不計,就簡單記下怎麼用c#解析json檔案,怎麼将一個類對象轉換成json行了(依舊是基本搬了siki老師的例子)。

操作json檔案

  • 首先要導入一手litjson的配置檔案,可以自己去官網找dll檔案也可以反手在vs的擴充管理器裡找相應的元件裝上。
  • 先把siki老師寫的json例子直接抄過來(老懶鬼了,例子都照抄
[
{"id":2,"name":"天下無雙","damage":123},
{"id":3,"name":"天下第一","damage":9999},
{"id":4,"name":"天下無賊","damage":15}
]
           

單步具體操作

  • 調用JsonMapper.ToObject(string s);方法得到該json檔案的JsonData對象,參數是檔案路徑,這個對象到底要怎麼用,還是取決于json檔案怎麼寫的
JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("json技能資訊.txt"));
//這邊這個檔案編寫的其實是一個技能數組的形式,是以得到的JsonData對象其實是個技能數組
//可以直接foreach進行周遊,來取得其内部每個技能的資料
foreach(JsonData temp in jsonData)
{
	JsonData idValue = temp["id"];   //通過字元串所引起取得鍵值對的值
	int id = Int32.Parse(idValue.ToString());
	//這邊通過ToString方法取得JsonData的字元串資料,然後對其轉換得到int資料
}
           

上面示範了如何單個解析Json檔案的資訊,當然你要是願意一個資訊一個資訊的填進一個對象我也沒意見,但是像我這種懶鬼,絕對絕對是要用下面這個方法的,太香了

json轉對象

  • 直接一手泛型,讓它自己對照你指定的類的屬性名去找對應的值,然後自己建立對象。依舊對照上面那個例子來寫
class Skill
{
	//先定義下技能的類
	//一定要把屬性設定為public
	public int id;
	public int damage;
	public string name;
}
Skill[] skills = JsonMapper.ToObject<Skill[]>(File.ReadAllText("json技能資訊.txt"));
//這邊泛型裡給的是Skill類型數組,是以我們直接用Skill的數組來接收結果
//需要注意這種方法json檔案裡寫的鍵一定要和指定類型的屬性命名對應上,不然會出問題
//也可以用如下方法做成list對象
List<Skill> skillList = JsonMapper.ToObject<List<Skill>>(File.ReadAllText("json技能資訊.txt"));
           

對象轉json

  • 這邊使用JsonMapper.ToJson(Object o);方法,把對象作為參數傳進去,傳回一個字元串,就是編好得json字元串。