我应该用什么来转换特定的json格式

时间:2017-06-05 06:38:05

标签: java json ejb

我有问题需要解决。我使用EJB3.1创建了我的网络服务。我在撰写将在json

中返回此格式的Java bean结构时遇到问题
{
    "test": {
        "v1": "1",
        "v2": "2"
    } 
}

我使用Map来创建它,但它给了我这种格式:

{
"test": {
    "entry": [
      {
        "key": "v1",
        "value": "1"
      },
      {
        "key": "v2",
        "value": "2"
      }
    ]
  }
}

该课程如下:

@XmlRootElement    
public class TestClass {

    @XmlElement(name="test")
    private Map<String, String> map;

}

这是我的WS方法

@POST
@Path("new")
@Produces("application/json")
public TestClass startNew () {
    TestClass testClass = new TestClass();
    Map<String, String> map = new HashMap<>();
    map.put("v1", "1");
    map.put("v2", "2");
    testClass.setMap(map);
    return testClass;
}

我应该使用别的东西而不是地图,或者我该如何处理这种格式?

1 个答案:

答案 0 :(得分:0)

您可能更容易使用JSON Processing API(以及Java EE 7的一部分):

@POST
@Path("new")
@Produces("application/json")
public JsonObject startNew() {
    JsonBuilderFactory factory = Json.createBuilderFactory(Collections.emptyMap());
    return factory.createObjectBuilder().
            add("test", factory.createObjectBuilder().
                    add("v1", 1).
                    add("v2", 2).
                    build()
            ).
            build();
}