【问题标题】:Getting error while parsing JSON in Mule在 Mule 中解析 JSON 时出错
【发布时间】:2016-12-30 08:34:37
【问题描述】:

我正在使用 mule anypoint studio 从 Mule 向另一个系统进行 Web 服务调用。调用正常,我确实看到了从外部系统返回的消息。现在我正在尝试使用 JSON 字符串传递该 Web 服务调用的输入。该值将记录在我们正在调用的外部系统上。我为此使用 Datamapper 并在数据映射器配置中选择 JSON 文件。地图发生时没有任何错误,但是当我调用 mule 流时(通过 http 连接器)。

我在控制台看到此错误

意外字符('N'(代码 78)):期待双引号 [Source: java.io.InputStreamReader@687aae57; 的起始字段名称; 行:1,列:3] 错误 2016-08-23 18:42:44,405 [WatchDog_0] org.jetel.graph.runtime.SingleThreadWatchDog:错误详情: org.jetel.exception.JetelRuntimeException:组件 [JSON READER:JSON_READER0] 以错误状态结束。 org.codehaus.jackson.JsonParseException: Unexpected character ('N' (code 78)): was expecting double-quote to start field name 根异常堆栈跟踪: org.codehaus.jackson.JsonParseException: Unexpected character ('N' (code 78)): was expecting double-quote to start field name 在 [来源:java.io.InputStreamReader 在 [来源:java.io.InputStreamReader@

我认为问题出在 JSON 文件上,但无法确定在哪里。我的 JSON 文件看起来像

{"receiveMessageFromMule":"Invocation Message from Mule"}

有人可以帮忙吗?

【问题讨论】:

    标签: mule-studio


    【解决方案1】:

    @Angel,根据错误接收到的带有不带引号的字段名称的JSON数据(字段名称没有双引号,”。您需要启用jackson mapper来处理不带引号的字段名称,这可以是通过将JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES 添加到ObjectMapper 配置来完成。

    您可以通过在 mule 中使用 spring 注入自定义 ObjectMapper 来自定义 JSON 转换器。下面是代码sn-p供参考

        <spring:bean id="jacksonObjectMapper" class="org.codehaus.jackson.map.ObjectMapper" />
        <spring:bean
            class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
            <spring:property name="targetObject" ref="jacksonObjectMapper" />
            <spring:property name="targetMethod" value="configure" />
            <spring:property name="arguments">
                <spring:list>
                    <spring:value>ALLOW_UNQUOTED_FIELD_NAMES</spring:value>
                    <spring:value>true</spring:value>
                </spring:list>
            </spring:property>
        </spring:bean>
    
        <json:object-to-json-transformer mapper-ref="jacksonObjectMapper" />
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      相关资源
      最近更新 更多