[英]how to properly convert avro schema into a json schema
我有以下json數據對象:
{
"name": "John",
"favorite_number": 5,
"favorite_color" : "green"
}
該對象的JSON模式如下所示:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Person",
"description": "some description",
"type": "object",
"properties": {
"name": {
"description": "name",
"type": "string"
},
"favorite_number": {
"type": "number",
},
"favorite_color": {
"type": "string",
},
},
"required": ["name", "favorite_number","favorite_color"]
}
我可以使用此JSON模式來驗證我的數據對象是否符合它:
public static boolean isJsonValid(String schemaText, String jsonText) throws ProcessingException, IOException
{
final JsonSchema schemaNode = getSchemaNode(schemaText);
final JsonNode jsonNode = getJsonNode(jsonText);
return isJsonValid(schemaNode, jsonNode);
}
在我的Java應用程序中,我從REST API調用中收到了該對象的相應AVRO模式,該模式如下所示:
{
"namespace": "example.avro",
"type": "record",
"name": "Person",
"fields": [
{"name": "name", "type": "string"},
{"name": "favorite_number", "type": ["int", "null"]},
{"name": "favorite_color", "type": ["string", "null"]}
]
}
是否有將這種AVRO模式轉換為JSON模式的普遍可接受的方法?
avro-tools-1.7.4.jar
(或存儲庫中的最新版本) java -jar avro-tools-1.7.4.jar tojson avro-filename.avro>output-filename.json
這將使用所有數據create output-filename.json
文件。 如果output-filename.json
已經存在,它將覆蓋它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.