有時,系統需要一個JSON格式配置文件。格式比較複雜,儘管有現成工具(如http://www.bejson.com/convert/json2csharp/),按
JSON格式定義好實體類還是比較麻煩的。
try {
string json = File.ReadAllText("robotv1.json");
// 解析json文件
dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
Console.WriteLine(jsonObj.Lidar.DefaultBaud);
// 也可以修改
jsonObj.Lidar.DefaultBaud = 123;
//重修序列化
string output = Newtonsoft.Json.JsonConvert.SerializeObject(jsonObj, Newtonsoft.Json.Formatting.Indented);
//保存
File.WriteAllText("config.json", output);
}catch {
}
C# 4 引入了一個新類型 dynamic。該類型是一種靜態類型,但類型爲 dynamic 的對象會跳過靜態類型檢查。
我們可以直接創建一個dynamic類型的變量,可以將任意對象賦值給它。如下所示:
dynamic dynVar1 = 1;
dynamic dynVar2 = new Object();
當我們在代碼中使用了dynamic
類型時,就是在告訴編譯器關閉對該對象的運行時檢查,而在運行時確定對象類型。