我需要一个jsonschema来验证JSON,其中所有键都需要是字符串。所有键都是任意的。
例如,这应该是有效的
{
"123": "GET",
"key2": "/mellons/and/strawberries",
"arbitrary_key": {
"SomeKey": "some data",
},
}
虽然这不应该
{
123: "GET",
"key2": "/mellons/and/strawberries",
"arbitrary_key": {
"SomeKey": "some data",
},
}
使用patternProperties
进行验证不起作用,因为此正则表达式"^.*$"
似乎与数字和字符串匹配。
答案 0 :(得分:1)
根据JSON,对象键总是字符串(只需看一下第一张图)。有些解析器可能允许使用数字作为字符串。
由于json模式应该验证有效json文档的结构,因此它不会识别词法错误的json字符串。这超出了json架构的范围。你也不应该混淆JSON和javascript对象。
因此,如果您确实想要捕获这些非格式良好的JSON,那么您可以做的最好就是选择一个具有严格模式的解析器。
答案 1 :(得分:-1)
a={
123: "GET",
"key2": "/mellons/and/strawberries",
"arbitrary_key": {
"SomeKey": "some data",
},
};
Object.keys(a) // this gives array of keys can assign check here