【发布时间】:2023-04-01 20:02:01
【问题描述】:
我正在尝试制作一个系统监视器,它可以由用户高度定制。这种定制是通过使用 JSON 文件对系统监视器的外观进行建模来实现的。 JSON 可能如下所示。
{
"_": "WINDOW",
"name": "myWindow",
"children": [
{
"_": "CPU",
"name": "cpuMonitor",
"freq_Unit": "MHZ"
},
{
"_": "NETWORK",
"name": "network",
"unit": "Kb/s"
},
{
"_": "DISK",
"name": "disk"
}
],
"background": "red"
}
如您所见,每个对象都对应此架构。
{
"$schema": "http://json-schema.org/draft-07/schema#",
"name":"Component",
"type": "object",
"properties":{
"_": {
"type": "string"
},
"name":{
"type":"string"
},
"childern":{
"type":"array"
}
},
"required": ["_","name"]
}
但每个组件也有自己的架构定义。我想解析整个 JSON 并为不同的模式验证每个节点(首先是它的组件,然后是它对应的模式)。
我查看了 rapidJson 和其他库,但我没有找到验证不同模式的节点的解决方案。你知道任何可以做到这一点的图书馆吗?或者甚至有可能以这种方式验证 JSON?
我们将不胜感激所有有关如何解决此问题的反馈。
编辑:更正架构:(
【问题讨论】:
-
本题与C++无关。
标签: json jsonschema rapidjson