【问题标题】:json conversion issue in wso2 API Managerwso2 API Manager 中的 json 转换问题
【发布时间】:2013-05-19 22:17:11
【问题描述】:

我们正在尝试使用 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 有什么补丁可以解决这个问题吗?

【问题讨论】:

    标签: json api rest wso2


    【解决方案1】:

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

    【讨论】:

    • 我试过 JSONStreamBuilder 和 JSONStreamFormatter。但它仍然以相同的方式工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多