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

来源:互联网 发布:腾讯游戏策划 知乎 编辑:程序博客网 时间:2024/06/05 15:18

一、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