我正在尝试使用Jackson来向文件写入/读取一个简单的类,但是在创建文件后我无法读取该文件。我懂了



我的对象很简单;它基本上只是一个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);

10-07 13:07