有时,系统需要一个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
类型时,就是在告诉编译器关闭对该对象的运行时检查,而在运行时确定对象类型。