【发布时间】:2021-10-19 12:38:11
【问题描述】:
下面是代码
json - 只需要响应中的 JsonLookupData
{
"LookupType": "ABC",
"BusSegmentName": "Test",
"PolcyObjectId": "999",
"JsonLookupData": {
"data": {
"OBJ_ID": "9393",
"ABC": "JAJA",
"XYZ": "LL",
"AAA": "250.00"
}
}
}
public new dynamic input { get; set; }
//initialization
input = JsonConvert.DeserializeObject(jsonInput.ToString());
//trying to remove all attributes except JsonLookupData
input.Properties().Where
(x => !x.Name.Equals("JsonLookupData")).ToList().ForEach(x => x.Remove());
有没有办法直接从动态输入中删除属性(不想先分配给JObject)。
上面的代码给出了下面的错误
Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree type
【问题讨论】:
-
示例 JSON 长什么样?
-
@DavidL 嗨,我已经更新了 JSON
-
你为什么使用
dynamic?您可以反序列化为JObject或JToken。 -
这是一个理论练习吗?使用 dynamic 作为中介而不是 JObject 是没有意义的。
-
@DavidL 这是已经用于创建所有脚本的模式,我认为通过这种模式实现这一点的唯一方法是明确删除不相关的属性,如 input.Property("BusSegmentName").Remove( );等
标签: c# .net json.net deserialization