将Json对象属性分配给模型

时间:2015-04-08 10:39:52

标签: c# json json.net

我使用动态和JObject.Parse匹配从嵌套的JSON-Object到模型类的90个属性:

dynamic json = JObject.Parse(JsonObjectAsString);
return new Foo() {
    prop1 = json.summer.temperature,
    prop2 = json.winter.temperature,
    ...
    prop100 = json.autumn.temperature
}

这非常慢,但仅在第一次运行时。在第二次运行时,将获取一个新的JSON-Object(相同的结构但不同的值),并且这一个被立即分配给相应的模型属性。

为什么?我该怎么做才能加快第一次运行?

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

1 个答案:

答案 0 :(得分:3)

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

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

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

的json数据中获取模型类

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

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

或者没有指定模型calss

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