zoukankan      html  css  js  c++  java
  • 利用JSONObject将json 字符串转换为java bean对象

    利用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;
    	}
    
  • 相关阅读:
    编程心得
    关于百分比的小花招
    vue2.0实现银行卡类型种类的选择
    如何运行vue项目(维护他人的项目)
    手把手教你用vue-cli构建一个简单的路由应用
    解决eclipse端口被占用的问题
    echarts统计图踩坑合集
    echarts如何设置背景图的颜色
    小程序获取的用户头像怎么做成圆形
    vue踩坑记-在项目中安装依赖模块npm install报错
  • 原文地址:https://www.cnblogs.com/jasonboren/p/12319356.html
Copyright © 2011-2022 走看看