C# 将Json对象属性分配给模型
我正在使用dynamics和JObject.Parse将嵌套JSON对象中的大约90个属性与模型类进行匹配:C# 将Json对象属性分配给模型,c#,json,json.net,C#,Json,Json.net,我正在使用dynamics和JObject.Parse将嵌套JSON对象中的大约90个属性与模型类进行匹配: dynamic json = JObject.Parse(JsonObjectAsString); return new Foo() { prop1 = json.summer.temperature, prop2 = json.winter.temperature, ... prop100 = json.autumn.temperature } 这非常
dynamic json = JObject.Parse(JsonObjectAsString);
return new Foo() {
prop1 = json.summer.temperature,
prop2 = json.winter.temperature,
...
prop100 = json.autumn.temperature
}
这非常缓慢,但仅在第一次运行时。在第二次运行时,将获取一个新的JSON对象(相同的结构但不同的值),并立即将此对象分配给相应的模型属性
为什么?如何加快第一次跑步速度?
编辑:我已经将构建类型设置为“Release”。您可以使用
newtonsoft
nuget包将JSON对象直接解析到模型
var objData = JsonConvert.DeserializeObject<MyData>(yourjsondata);
您可以使用
newtonsoft
nuget包将JSON对象直接解析到模型var objData=JsonConvert.DeserializeObject(yourjsondata)代码>JSON对象的结构与我的模型不同。它更大,我只需要它的一些(90)属性。还是我误解了你的意思?你可以从Ruchir的json数据中获取模型类,谢谢你的建议,但我希望避免为外部json对象添加额外的模型(将来可能会更改,添加一些新属性等)。问题是它只在第一次运行时运行缓慢。。彼得:你也可以使用动态对象Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString)进行转换代码>或不指定模型calssNewtonsoft.Json.JsonConvert.DeserializeObject(jsonString)代码>
var objData = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonString);
var objData = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);