【发布时间】:2017-09-17 11:17:34
【问题描述】:
我正在使用 JsonClassGenerator 项目将 Json 特定转换为 C# 类。
这是我正在构建的一些中间件,用于连接我公司大量构建的 TrackVia API 项目。
我现在正在我的 .Net 应用程序中构建数据层
基本上我有一个 Json 结构,我需要对其进行解析,以确定是否应该根据“结构”中的“canUpdate”值来序列化“数据”中的属性之一。
让我们从Json结构开始:
{
"structure": [
{
"name": "Updated",
"type": "datetime",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Amount",
"type": "currency",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Description",
"type": "paragraph",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Created",
"type": "datetime",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Quantity",
"type": "number",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": true,
"canCreate": true
},
{
"name": "Created By User",
"type": "user",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "ID",
"type": "number",
"required": false,
"unique": true,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Last User",
"type": "user",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Unit_Tracker",
"type": "relationship",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": true,
"canCreate": true
},
{
"name": "Project_Materials",
"type": "relationship",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": true,
"canCreate": true
},
{
"name": "Record ID",
"type": "identifier",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
}
],
"data": [
{
"Updated": "2017-04-20T10:12:00.000-06:00",
"Project_Materials(id)": 404,
"Unit_Tracker(id)": 209,
"Amount": "78.18",
"Description": "1/2 in",
"Quantity": "1",
"Created By User": "By",
"Unit_Tracker": "R04-5050",
"Project_Materials": "1001755734",
"id": 772,
"Created": "2017-04-20T10:12:00.000-06:00",
"Last User": "By",
"Last User(id)": 58443,
"Created By User(id)": 58443,
"Record ID": "1/2 in"
}
],
"totalCount": 763
}
这是我需要匹配的。我需要将“数据”中的键(即“更新”)与“结构”中的键值匹配,即结构->“名称”:“更新”,然后确定“canRead”、“canUpdate”、“canCreate”的值设置某种标志。
然后,该标志将告诉 Codewriter 添加一行“[JsonIgnoreSerialization]”并在我的输出文本中生成如下格式化属性:
[JsonIgnoreSerialization]
[JsonProperty("Updated")]
public string Updated { get; set; }
我什至没有使用过 JObjects,所以我的代码目前为空,因为我不知道从哪里开始。
这是一个大问题的原因是因为我必须根据从他们的 API 导出的 Json 将 Trackvia 中的数百个表转换为我的应用程序中的 C# 类 - 这将花费我数周的时间,我希望有一个定制的转换工具它为我构建了我的 C# 类 - 所以拥有它会很棒。
不是在寻找施舍,我愿意为自己的成功而努力,需要一些方向。
【问题讨论】:
-
您觉得这个答案有用吗?还是没有解决您的问题?