2017-06-05 61 views
0

我有我想解決的問題。我使用EJB3.1來創建我的web服務。我無法構成一個Java bean的結構,將在json我應該用什麼來轉換特定的json格式

{ 
    "test": { 
     "v1": "1", 
     "v2": "2" 
    } 
} 

我用地圖來創建它返回此格式,但它給了我這樣的格式:

{ 
"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; 
} 

我應該使用別的東西而不是地圖嗎?或者我該如何處理這種格式?

回答

0

它可能會更容易讓你使用JSON Processing API(7的Java EE和部分):

@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(); 
} 
+0

我可以用它代替這種方式 – user1608962

+0

我想用類似的地圖XmlElment是沒有任何方法,那 – user1608962

相關問題