使用json模式动态地从HashMap创建json响应

时间:2013-12-02 15:33:11

标签: java json hashmap jackson

我有不同的JSON模式,每个模式支持RESTful Web服务中不同资源的不同响应格式。响应数据可在地图中找到。我需要在json模式的帮助下从地图创建一个json响应。我需要使用杰克逊。

挑战在于,我不知道每个json模式中字段的级别,我只有一个保存数据的HashMap。

请提出实现目标的方法。

提前致谢。

响应模式:

{
"type":"object",
"properties":
{
    "transactionId":
    {
        "description":"To uniquely identify request from a specific source.",
        "type":"string"
    },
    "productAccountInformation":
    {
        "type":"object",
        "properties":
        {
            "productId":
            {
                "description":"The unique identifier for a product",
                "type":"string"
            },
            "productAccount":
            {
                "type":"array",
                "items":
                {
                    "type":"object",
                    "properties":
                    {
                        "accountId":
                        {
                            "description":"The unique identifier for a account",
                            "type":"string"
                        },
                        "value":
                        {
                            "description":"account balance.",
                            "type":"number"
                        },
                        "noOfDecimals":
                        {
                            "description":"Number of decimal places.",
                            "type":"number"
                        }
                    }
                }
            }   
        }
    }
},
"required":["transactionId"," productAccountInformation "]
}

地图:     {     transacionId - asdbdf123,     productInformation-productId - 100,     productInformation-productAccount-AccountId - 9941361330,     productInformation-productAccount-value - 5000,     productInformation-productAccount-noOfDecimals - 2     } 预期产出是:

{
"transactionId":"asdbdf123",
"productAccountInformation":
{
    "productId":"100",
    "productAccount":
    [
        {
            "accountId":"9941361330",
            "value":5000,
            "numberOfDecimals":2
            }
        ]
    }
}

以上不是我们唯一的响应模式,我们将有n个模式。所以我正在寻找一个通用的解决方案,它使用json模式从map生成json响应。

0 个答案:

没有答案