1

我们正在尝试使用 wso2 api manager 来访问我们的一些 RESTful 服务。其余服务需要一个 json 有效负载。当 json 请求发送到 api manager 时,它将 json 请求转换为 xml,并在转发到实际端点时再次转换为 json。在我们的一种情况下,生成的 json 与原始请求不完全匹配。例如,如果 rquest 包含一个元素数组,并且如果数组中只传递了一个元素,那么当 api 管理器将请求转发到端点时,数组字符 ([,]) 将被删除。例如。我们最初的要求是

{
    "entities": [
    {
        "name":"KK71CP20000523A1",
        "descr":"VaS",
        "mnf":"BCT",
        "mdlyr":"2012"
    }
    ]
}

api manager 发送的请求是

{
    "entities": 
    {
        "name":"KK71CP20000523A1",
        "descr":"VaS",
        "mnf":"BCT",
        "mdlyr":"2012"
    }

}

数组包装在实体元素下被删除。当元素的数量大于一个时,则保留数组字符。

我们之前在 ESB 中也遇到过同样的问题。但是我们通过扩展默认 JSONMessageFormatter 并使用 jettison 库中提供的 seriliazeAsArray 方法解决了这个问题。但是我们不想在 API Manager 中进行这种定制。有没有更好的方法来解决这个问题?wso2有什么补丁可以解决这个问题吗?

4

1 回答 1

0

所有碳产品都带有相同的消息构建器和格式化程序,您可以使用 JSONStreambuilder 和格式化程序检查您的情况。看看这个参考

于 2013-05-24T11:10:43.690 回答