私はid
とcontent
の両方を必要とするが、後者は空の文字列にデフォルトのJSONスキーマを持っています。私は次のようなJSON文字列を検証しようとしているデフォルトのプロパティを扱うためにRapidJSONスキーマを取得する方法
{
"type": "object",
"properties": {
"id": { "type": "string" },
"content": { "type": "string", "default": "" }
},
"required": [ "id", "content" ],
"additionalProperties": false
}
:そのために
{
"id": "some id"
}
を、私は次のコードを持っている:
rapidjson::Document document;
document.Parse(schemaJson.c_str());
rapidjson::SchemaDocument schemaDocument(document);
rapidjson::SchemaValidator validator(schemaDocument);
rapidjson::Document modelDoc;
modelDoc.Parse(modelJson.c_str());
modelDoc.Accept(validator); // Complains about missing property
を受け入れるコールにもかかわらず、検証に失敗しましたプロパティにはデフォルト値があります。
RapidJSON schema documentationは、JSON Schema draft 4に準拠しています。
誰かが私が間違っているかもしれないことを知っていますか?
ありがとうございました。今日のよう