利用JSONObject將下面這個json字符串轉換為javabean對象
{
"assetInfoList":[{
"devsno":"xxx",
"assetno":"xxx",
"domain":"xxx",
"devtype":"xxx",
"category":"xxx",
"vendor":"xxx",
"hardver":"xxx",
"softwarever":"xxx",
"custname":"xxx",
"custaddr":"xxx!",
"contactinfo":"xxx",
"orders":"xxx,xxx",
"services":"xxx,xxx,xxx",
"opertime":"xxx",
"orderNumber":"xxx",
"taskNumber":"xxx",
"multicast":"xxx"}],
"infname":"xxx",
"requestserial":"xxx",
"sysname":"xxx"
}
解析過程分析:
private AMSRequestStruct decode(String jsonStr) {
//實體對象
AMSRequestStruct request = new AMSRequestStruct();
//將jsonStr轉為JSON對象
JSONObject obj = JSONObject.fromObject(jsonStr);
//獲取json對象的值 json格式為key-value形式
request.setSysname(obj.getString("sysname").trim());
request.setRequestserial(obj.getString("requestserial").trim());
request.setInfname(obj.getString("infname").trim());
//json數組轉換為JSONArray
JSONArray array = obj.getJSONArray("assetInfoList");
//聲明一個list
ArrayList list = new ArrayList();
//循環遍歷json數組
for (int i = 0; i < array.size(); i++) {
JSONObject asset = array.getJSONObject(i);
AssetInfo info = new AssetInfo();
info.setDevsno(asset.getString("devsno").trim());
info.setAssetno(asset.getString("assetno").trim());
info.setCmsdomain(asset.getString("domain").trim());
info.setDomain(asset.getString("domain").trim());
info.setDevtype(asset.getString("devtype").trim());
info.setCategory(asset.getString("category").trim());
info.setVendor(asset.getString("vendor").trim());
info.setHardver(asset.getString("hardver").trim());
info.setSoftwarever(asset.getString("softwarever").trim());
info.setCustname(asset.getString("custname").trim());
info.setCustaddr(asset.getString("custaddr").trim());
info.setContactinfo(asset.getString("contactinfo").trim());
info.setOrders(asset.getString("orders").trim());
info.setServices(asset.getString("services").trim());
info.setMulticast(asset.getString("multicast").trim());
info.setOpertime(asset.getString("opertime").trim());
info.setStatus(request.getInfname2(request.getInfname()));
info.setDevstatus(request.getFlag2(request.getInfname2(request.getInfname())));
info.setInvtype(request.getFlag3(request.getInfname2(request.getInfname())));
info.setOrdernumber(asset.getString("orderNumber"));
info.setTasknumber(asset.getString("taskNumber"));
//將info添加到list中
list.add(info);
}
request.setAssetInfoList(list);
return request;
}