将 Json 对象属性分配给模型

Assigning Json object properties to a model

我正在使用动力学和 JObject.Parse:

将嵌套 JSON-Object 中的大约 90 个属性匹配到模型 class
dynamic json = JObject.Parse(JsonObjectAsString);
return new Foo() {
    prop1 = json.summer.temperature,
    prop2 = json.winter.temperature,
    ...
    prop100 = json.autumn.temperature
}

这很慢,但 仅在第一个 运行。在第二个 运行 上,一个新的 JSON-Object 被获取(相同的结构但不同的值),并且这个对象很快被分配给相应的模型属性。

这是为什么呢?我该怎么做才能加快第一个 运行?

编辑:我已经将构建类型设置为 "Release"。

您可以使用 newtonsoft nuget 包将 JSON 对象直接解析为模型。

var objData = JsonConvert.DeserializeObject<MyData>(yourjsondata);

您可以从 http://json2csharp.com/

的 json 数据中获取您的模型 class

您也可以使用动态对象进行转换

var objData = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonString); 

或者不指定模型 calss

var objData = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);