【发布时间】:2021-12-23 03:06:31
【问题描述】:
我们能否将动态 JSON 解析为对象列表 List<DiffModel>
public class DiffModel
{
public string Property { get; set; }
public string OldValue { get; set; }
public string NewValue { get; set; }
}
JSON 是在 library 的帮助下生成的,它有助于比较 2 个 JSON 对象并找出差异。差异被存储为JToken
借助以下工具生成的示例 JSON JToken 值
JToken patch = jdp.Diff(left, right)方法
{
"Id": [
78485,
0
],
"ContactId": [
767304,
0
],
"TextValue": [
"text value",
"text14"
],
"PostCode": [
null
]
}
从 JSON 中,对象中第一项的值为
DiffModel [0] = Property ="id" OldValue="78485" NewValue="0"
DiffModel [1] = Property ="contactId" OldValue="767304" NewValue="0"
DiffModel [2] = Property ="TextValue" OldValue="text value" NewValue="text14"
DiffModel [3] = Property ="PostCode" OldValue= null NewValue=null
我们能否在动态 JSON 的属性之间导航并构建类似的模型
【问题讨论】:
-
对于您的特定情况,您可以使用
patch.AsJEnumerable().OfType<JProperty>().Select(p=>new DiffModel { ... })。但是,返回的JToken并不像您的示例那么简单。你可以阅读full specs。