簡體   English   中英

如何將avro模式正確轉換為json模式

[英]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模式的普遍可接受的方法?

  1. 下載: avro-tools-1.7.4.jar (或存儲庫中的最新版本)
  2. 運行: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM