有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

无字段名的java Jackson序列化

这是我的previous question的轻微扩展。根据dambros的回答,json现在看起来像:

"Foo": {
    "title": {
        "type": "title",
        "value": "...",
        "variable": "..."
    },
    "message": {
        "type": "message",
        "value": "...",
        "variable": "..."
    }
}

但我真正想要的是:

"Foo": [
{
    {
        "type": "title",
        "value": "...",
        "variable": "..."
    },
    {
        "type": "message",
        "value": "...",
        "variable": "..."
    }
}
]

有没有办法将Foo字段写入数组,同时也不将变量名显示为字段(即删除"title" :


共 (2) 个答案

  1. # 1 楼答案

    阅读以下博客json in java

    这篇帖子有点老了,但我还是想回答你们的问题

    步骤1:创建数据的pojo类

    第2步:现在使用json创建一个对象

    Foo foo = null;
    ObjectMapper mapper = new ObjectMapper();
    try{
    foo =  mapper.readValue(newFile("/home/sumit/foo.json"),Foo.class);
    } catch (JsonGenerationException e){
    e.printStackTrace();
    }
    

    如需进一步参考,可参考以下link

    谢谢

  2. # 2 楼答案

    这不是有效的JSON,但是:

    {
        "Foo": [
            {
                "type": "title",
                "value": "...",
                "variable": "..."
            },
            {
                "type": "message",
                "value": "...",
                "variable": "..."
            }
        ]
    }
    

    这是一个JSON对象,有一个名为Foo的字段,它是一个对象数组

    你应该读JSON spec


    或者,如果您有一个List<Foo>,您可以直接序列化列表,将JSON数组作为根,而不是JSON对象作为根:

    [
        {
            "type": "title",
            "value": "...",
            "variable": "..."
        },
        {
            "type": "message",
            "value": "...",
            "variable": "..."
        }
    ]