使用jackson序列化数组

时间:2016-02-18 05:01:02

标签: java json jackson

我有两个课程如下

class Rules{

 @JsonProperty("rules")
 Rule [] rules
}

class Rule{
 @JsonProperty("a1")
String attrubite1;
}

我使用json将其序列化并生成

之类的东西
{
    "rules": [{
       "a1": "somedataForRule1"
    }, {
        "a1": "somedataforTule1"
    }]
} 

我希望json像

{
    "rules": ["rule":{
       "a1": "somedataForRule1"
    }, 
    "rule":{
        "a1": "somedataforTule1"
    }]
} 

我该怎么做?

我的代码:

Rules rules = new Rules();
 rules.setRules(new Rule[]{r1,r2});
 Strings = objectMapper.writeValueAsString(rules);

1 个答案:

答案 0 :(得分:1)

在数组中,我们不能拥有密钥。数组只有索引作为键 所以以下是无效的json

[
    "a": {...}
]

要拥有密钥,我们需要一张地图。所以以下内容是有效的。

{
    "a": {...}
}

所以你想要的是不可能的,因为你要求杰克逊创造无效的json。解决这个问题的唯一方法就是创建自己的实用程序。

修改

  

你确定它的无效json吗?

www.json.org enter image description here