java - Jackson解析器异常: unexpected Character

标签 java jackson

我正在获取 json 流并尝试使用 jackson 将其转储到 map 中。以下是我得到的 json 语法:

M1{"id":"2345","results":"2"}
R1{"Title":"Titanic","country":"US"}
R2{"Title":"Avatar","country":"US"}

现在我有下面的代码来在 jackson 解析器中解析这个流:

     ObjectMapper mapper = new ObjectMapper();
     InputStreamReader stream = new InputStreamReader(
                urlConn.getInputStream(),org.apache.commons.lang.CharEncoding.UTF_8);
        Map<String,Object> result = mapper.readValue(stream, new TypeReference<Map<String,Object>>() { });

我看到以下错误:

Unexpected character ('M' (code 77)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: java.io.InputStreamReader@1d6e3d2; line: 1, column: 2]

我想将两个 json 结果分别放入两个映射中。我无法更改 json 结构。

有人可以解释一下如何让它工作吗?

最佳答案

不是 JSON:

M1{"id":"2345","results":"2"}
R1{"Title":"Titanic","country":"US"}
R2{"Title":"Avatar","country":"US"}

是 JSON:

[{"key"="M1","id":"2345","results":"2"},
{"key"="R1","Title":"Titanic","country":"US"},
{"key"="R2","Title":"Avatar","country":"US"}]

我不确定这是否与您的数据应该完全匹配,但这就是您表示对象数组的方式。如果您要使用 JSON 解析器,则需要确保您正在解析的内容实际上是 JSON。

关于java - Jackson解析器异常: unexpected Character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16243614/

相关文章:

java - 解决 Android Studio 2.1.2 中未注册错误 URI

java - 表示类中的可选属性

json - jackson Json 对象映射器 : how to map an array?

java - 如何使用 Jackson 反序列化混合类型的匿名数组

java - 应用程序上下文在 Maven 测试中无效

java - Spring 从 MQTT 出站 channel 适配器获取事件

java - 错误的 R.java 绘图生成

java - Jersey/Jackson 仅基类序列化问题

javascript - 在java中读取javascript对象

java - 缺少方法 public void 的依赖关系