使用Jackson注释使用子数组反序列化JSON?

时间:2013-02-07 22:35:38

标签: java json jackson

我正在尝试解析一些包含嵌套数组的JSON。我希望数组映射到父映射中的子对象列表。这是(稍微缩写)JSON和Java类

JSON:

{
    "id": "12121212121",
    "title": "Test Object",
    "media$content": [
        {
            "plfile$audioChannels": 1,
            "plfile$audioSampleRate": 18000,
        },
        {
            "plfile$audioChannels": 2,
            "plfile$audioSampleRate": 48000,
        },
        {
            "plfile$audioChannels": 2,
            "plfile$audioSampleRate": 48000,
        }
    ]
}

Java类

class MediaObject {
    @JsonProperty("id")
    private String id;

    @JsonProperty("title")
    private String title;

    @JsonProperty("media$Content")
    private List<MediaContent> mediaContent;

    ... getters/setters ...

}


class MediaContent {

    @JsonProperty("plfile$audioChannels")
    private int audioChannels;

    @JsonProperty("plfile$audioSampleRate")
    private int audioSampleRate;

    ... getters/setters ...
}

我希望能够使用注释和标准映射器代码反序列化,即    mapper.readValue(jsonString,MediaObject.class)

“id”和“title”字段的一切正常,但我的MediaContent对象列表总是为空。这似乎杰克逊应该能够毫不费力地处理,有人能看到我在这里做错了什么吗?

1 个答案:

答案 0 :(得分:2)

json字段的名称错误 - 该属性不是media$Content,而是media$[c]ontent。否则我不明白为什么它不起作用。