将 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);
的 json 数据中获取您的模型 class
您也可以使用动态对象进行转换
var objData = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonString);
或者不指定模型 calss
var objData = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);
我正在使用动力学和 JObject.Parse:
将嵌套 JSON-Object 中的大约 90 个属性匹配到模型 classdynamic 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);
的 json 数据中获取您的模型 class
您也可以使用动态对象进行转换
var objData = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonString);
或者不指定模型 calss
var objData = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);