java - Jackson ObjectMapper 意外字符 - JSON 有效

标签 java json file jackson

我正在尝试使用 Jackson 将一个简单的类写入/读取到文件中,但在创建文件后无法读取该文件。我明白了

org.codehaus.jackson.JsonParseException: Unexpected character ('.' (code 46)): expected a valid value (number, String, array, object, 'true', 'false' or 'null') at [Source: java.io.StringReader@f2dec59; line: 1, column: 2]

我的目标很简单;它基本上只是一个 HashMap 的容器。这是我使用 JSONLint check out 的生成的 JSON 文件:

{
"quaternions": {
    "10": {
        "x": 0,
        "y": 0,
        "z": 0,
        "w": 1,
        "identity": true
    },
    "11": {
        "x": 0,
        "y": 0,
        "z": 0,
        "w": 1,
        "identity": true
    },
    "12": {
        "x": 0,
        "y": 0,
        "z": 0,
        "w": 0,
        "identity": false
    }
}
}

我用来读取文件的代码如下:

TypeReference<ZeroQuaternions> typeRef;
typeRef = new TypeReference<ZeroQuaternions>() {};
ZeroQuaternions readQuats = mapper.readValue("./zeroQuatTest.json", typeRef);

最佳答案

你有这个错误是因为 jackson 试图反序列化 ./zeroQuatTest.json 字符串而不是你的文件的内容。尝试调用

TypeReference<ZeroQuaternions> typeRef;
typeRef = new TypeReference<ZeroQuaternions>() {};
ZeroQuaternions readQuats = mapper.readValue(new File("./zeroQuatTest.json"), typeRef);

关于java - Jackson ObjectMapper 意外字符 - JSON 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636127/

相关文章:

javascript - 如何显示 Bitly API 调用的短 URL?

arrays - 用C在数组中移动指针

java - 每个 BufferedWriter 实例只有一个 FileWriter 实例?

java - 无法使用 Selenium Webdriver 和 Java 保存跨度控件中的值

java - Swing:设置JFrame内容区域大小

javascript - 为什么我的 onclick 事件不显示我的 JSON 文件?

iOS swift : Parsing response json with AFNetworking

Java无缘无故地锁定文件

java - 遍历集合中的集合,直到 Java 中的最后一个元素

java - gitlab API gitlab4j Java更改默认分支