2012-07-23 290 views
0

我遇到问题。我的应用程序不会从我的Web服务加载资源,因为它的格式已更改。将JSON对象转换为JSON数组

我的web服务之前返回一个JSON数组是这样的:

[{"productid":2,"sku":"SKU-2","productname":"SMART NEW","productdesc":"description","category":"default category","price":2000.1,"picture":"http://10.23.20.50:8080/msos-ws/images/products/smart.gif","remarks":"remarks"}] 

现在,它返回一个JSON对象我想:

{"product":[{"category":"default category","picture":"http://localhost:8080/msos-ws/images/products/smart.gif","price":"480.0","productdesc":"Dragon Flash Disk (Special)","productid":"7","productname":"Kingston 8GB","remarks":"remarks","sku":"SKU-7"}]} 

这里是我的代码在后端:

@GET 
@Override 
@Produces("application/json") 
public List<Product> findAll() { 
     return prodManager.getProducts(); 
} 

我返回一个列表,所以它应该在数组中,对吗?

回答

0

你得到的是一个键/值对,其中关键是

product 

和1-元件阵列

[{"category":"default category","picture":"http://localhost:8080/msos-ws/images/products/smart.gif","price":"480.0","productdesc":"Dragon Flash Disk (Special)","productid":"7","productname":"Kingston 8GB","remarks":"remarks","sku":"SKU-7"}] 

指www.json.org/javadoc/org/json /JSONObject.html,看看下面的方法:

public java.lang.Object get(java.lang.String key) 

public JSONObject put(java.lang.String key, 
        java.util.Collection value) 

修改你的应用程序加载资源应该很容易n ow :)