【发布时间】:2020-10-26 09:47:25
【问题描述】:
我有大量的外部 JSON 模式和 JSON 文档,我需要将它们作为 CSharp 项目的一部分进行解析 它们来自一家外部公司,它们似乎是 JSON 和其他东西的混合体。 我能够很好地解析 JSON,但我需要 Schemas 才能理解它们。
问题来自被定义为“元数据”的“类型”以及被重新映射为“数据类型”的实际类型名称
{
"type": "MetaData",
"name": "atypeoffield",
"title": "ancillary data for field type",
"object_ID": "MetaData-atypeoffield",
"parent_object_ID": "fieldreceiver",
"dataType": "object",
"properties": {
"fieldreceivercontrol": {
"description": "ancillary data for control",
"type": "array",
"minItems": 1,
"maxItems": 144,
除了在输入的过程中进行字符串替换之外,您还可以为 Newtonsoft JSON 想出更优雅的方法来解决这个问题吗?
我希望动态加载架构,然后将它们用于针对 Web 服务的临时字段验证,但主要要求是在运行时动态加载一组架构以确定要验证的字段
【问题讨论】:
-
模式是否有效jsonschema 模式? Newtonsoft 有一个单独的包Json.NET Schema 用于解析和验证jsonschema。
-
... 看起来不像。 jsonschema 使用
"type"关键字来指示值类型。您的架构似乎正在使用"dataType"。您是否有一些说明架构标准的文档?你能把它重新映射到jsonschema吗? -
我写了一个正则表达式来重新映射无效的关键字 - 丑陋的软糖,但它必须这样做!