jsonObject和jsonArray的互相转换
首先先说一下这两个家伙在我们项目中运用,我们项目中一般引的是
commons-lang.jar
commons-beanutils.jar
commons-collections.jar
json-lib-2.2.2-jdk15.jar
JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包
举个例子
{“items”:[{“age”:1,”name”:”李四”},{},{}]}或
{“items”:{“age”:1,”name”:”张三”}}
上面的数据格式在我们的项目中经常遇到. 这时我们就会引入上面的包, 然后会去用jsonObject去接收
jsonObject obj = new jsonObject ("items");
如果是简单的一组数据,那么我们接收完之后 去给我需要的赋值就可以了,但是如果是好多组数据那么我们就必须转换为jsonArray格式,然后遍历赋值
public static List<OrderDetail> perpareUpdateOrderDetail(JSONArray orderArray) throws InvalidRequestException
{
try
{
List<OrderDetail> orderDetailList = new ArrayList<OrderDetail>();
for (int i = 0; i < orderArray.length(); i++)
{
OrderDetail orderDetail = new OrderDetailImpl();
JSONObject orderDetailObj = orderArray.getJSONObject(i);
orderDetail.setId(orderDetailObj.getLong(ClothingQNames.ID));
orderDetail.setOrderId(orderDetailObj.getLong(ClothingQNames.ORDER_ID));
orderDetail.setPlayerName(orderDetailObj.getString(ClothingQNames.PLAYER_NAME));
orderDetail.setPlayerNumber(orderDetailObj.getInt(ClothingQNames.PLAYER_NUMBER));
orderDetail.setPlayerSize(orderDetailObj.getString(ClothingQNames.PLAYER_SIZE));
orderDetailList.add(orderDetail);
}
return orderDetailList;
}
catch (Exception e)
{
throw new InvalidRequestException("Wrong OrderDetail json format");
}
就如上面 JSONObject orderDetailObj = orderArray.getJSONObject(i); 取出单组数据然后 转换为java对象, 最后存入List中