Java中Json对象与String的相互转化,以及String与Map之间的转换,以及ArrayList中添加对象

一、Json与String的相互转换

1、String转换成Json对象

String data="{"a":"A","b":"B"}";
JSONObject data_temp = JSONObject.parseObject(data);
2、Json转换成String

String data_String=JSONObject.toJSONString(data_temp);
3、String与HashMap之间的转换

	Map<String, Object> config_Object = JSONObject.parseObject(data_temp_detail.getString("configList"));
		Collection<String> collection = config_Object.keySet();
		Iterator<String> iterator = collection.iterator();
		while (iterator.hasNext()) {
			AutotestConfigEntity adce = new AutotestConfigEntity();
			String clusterName = "";
			clusterName = iterator.next();
			// adce.setJobId(jobId);
			adce.setClusterName(clusterName);
			try {
				adce.setConfigTypeId(
					ClusterConfig.environmentToConfigId(String.valueOf(config_Object.get(clusterName))));

				adList.add(adce);
			} catch (Exception e) {
				e.printStackTrace();
		   }
		}

4、如果需要在数组中添加新的对象,就要每一次都要new一个新的对象,不能讲实例化对象的操作放到循环体以外,否则会添加一个对象,而且是重复最后一个的值 

while (iterator.hasNext()) {
			AutotestConfigEntity adce = new AutotestConfigEntity();
			String clusterName = "";
			clusterName = iterator.next();
			// adce.setJobId(jobId);
			adce.setClusterName(clusterName);
			try {
				adce.setConfigTypeId(
						ClusterConfig.environmentToConfigId(String.valueOf(config_Object.get(clusterName))));

				adList.add(adce);
			} catch (Exception e) {
				e.printStackTrace();
				result.setCode(2);
				result.setMsg("系统异常");
				new StringActionResult(JSONObject.toJSONString(result));
			}

5、实战练习

/** 
     * 测试将字符串转化为JSONArray 
     * 然后取出特定的值 
     * import net.sf.json.JSONArray; 
     * import net.sf.json.JSONObject; 
     * import org.apache.commons.lang.StringUtils; 
     */  
    @Test  
    public void test2(){  
        String sCheck;//待检测字符串  
        //null 场景  
        String s0=null;  
        //空串场景  
        String s1="";  
        //包含且只包含一个场景  
        String s2="[{\"name\":\"名字1\",\"type\":\"type1\",\"group\":\"1.02\"}]";  
        //不包含,但是有其他场景  
        String s3="[{\"type\":\"type2\",\"group\":2,\"name\":\"啦啦啦\",\"tip\":\"快快参加吧!\"}]";  
        //混合包含且包含正确的场景-靠后  
        String s4="[{\"type\":\"type2\",\"group\":2,\"name\":\"啦啦啦\",\"tip\":\"快快参加吧!\"},{\"name\":\"名字1\",\"type\":\"type1\",\"group\":\"1.02\"}]";  
        //混合包含且包含正确的场景-靠前  
        String s5="[{\"name\":\"名字1\",\"type\":\"type1\",\"group\":\"1.02\"},{\"type\":\"type2\",\"group\":2,\"name\":\"啦啦啦\",\"tip\":\"快快参加吧!\"}]";  
          
        sCheck=s5;  
          
        String result ="0";//名字1默认为0  
        if(StringUtils.isNotBlank(sCheck)){//如果字符串不为空  
            JSONArray jary=JSONArray.fromObject(sCheck);  
            for(int i=0;i<jary.size();i++){  
                JSONObject job=JSONObject.fromObject(jary.get(i).toString());  
                if("type1".equals((String)job.get("type"))){  
                    System.out.println("预期的type值"+(String)job.get("type"));  
                    result=(String)job.get("group");//获取对应的名字1  
                    break;//循环终止  
                }else{  
                    System.out.println("非预期的type值"+(String)job.get("type"));  
                }  
            }  
        }  
          
        System.out.println("名字1的值为:"+result);  
          
          
          
    }  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漁陽

彼此共勉,砥砺前行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值