扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
java遍历json的话,你可以选择gson或者阿里巴巴的fastjson,这两个解析json的话是非常方便的,可以转换成java对象。
创新互联基于分布式IDC数据中心构建的平台为众多户提供珉田数据中心 四川大带宽租用 成都机柜租用 成都服务器租用。
我想了一下,但是得有一个前提,就是第一个json数组的size必须和第二个json数组的size相同,并且一一对应,否则将造成数组溢出。
如果是基于上面这个前提,那么实现的方法就简单了。
操作json对象,其实标准的方法是将实体类转换成json后再操作,我这里的话为了便捷直接使用谷歌的Gson来创建JsonObject了,其他的json依赖还有阿里巴巴的FastJson等等,看你平时用什么习惯。
引入Gson依赖:
dependency
groupIdcom.google.code.gson/groupId
artifactIdgson/artifactId
version2.8.0/version
/dependency
实现代码:
public class Main {
public static void main(String[] args) {
JsonArray jsonArray1 = new JsonArray();
JsonObject json11 = new JsonObject();
json11.addProperty("数据1", "0000");
json11.addProperty("数据2", "1111");
JsonObject json12 = new JsonObject();
json12.addProperty("数据1", "0000");
json12.addProperty("数据2", "1111");
JsonObject json13 = new JsonObject();
json13.addProperty("数据1", "0000");
json13.addProperty("数据2", "1111");
jsonArray1.add(json11);
jsonArray1.add(json12);
jsonArray1.add(json13);
System.out.println(jsonArray1);
JsonArray jsonArray2 = new JsonArray();
JsonObject json21 = new JsonObject();
json21.addProperty("数据3", "6666");
JsonObject json22 = new JsonObject();
json22.addProperty("数据3", "6666");
JsonObject json23 = new JsonObject();
json23.addProperty("数据3", "6666");
jsonArray2.add(json21);
jsonArray2.add(json22);
jsonArray2.add(json23);
System.out.println(jsonArray2);
//遍历json数组,按位取出对象
for (int i = 0; i jsonArray1.size(); i++) {
JsonObject json1 = jsonArray1.get(i).getAsJsonObject();
JsonObject json3 = jsonArray2.get(i).getAsJsonObject();
//遍历数据3内容,通过Entry获取数据3的key和value,并合并到数据1中
for (Map.EntryString, JsonElement item : json3.entrySet()) {
json1.addProperty(item.getKey(), item.getValue().getAsString());
}
}
System.out.println(jsonArray1);
}
}
整体思路为:遍历两个json数组,按位进行合并操作。合并时,遍历数据3的jsonObject,获取其key和value,并将其合并到数据1中即可。
运行结果:
步骤一:导入jar
json-lib-2.2.2-jdk15.jar
json-lib依赖包:commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar
步骤二:建对应的实体类
public class Region(){
String category;
String cityName;
String siteName;
String total;
//省略get/set
}
步骤三:遍历
public class Test {
//将json字符串转List
public static ListRegion converListFormJson(String json){
if (json== null || json.equals("")) {
return new ArrayList();
}
JSONArray jsonArray = JSONArray.fromObject(json);
ListRegion list = (List) JSONArray.toCollection(jsonArray, Region.class);
return list;
}
public static void main(String args[]){
ListRegion list = converListFormJson();
for(Region region : list ){ //遍历所有的
System.out.println("...............业务............");
}
}
}
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray jsonArray =jsonObject.getJSONArray(“info”);
for (int i = 0; i jsonArray.length(); i++) {
JSONObject jo = jsonArray.getJSONObject(i);
System.out.println(jo.getString("goodsld"));
System.out.println(jo.getString("goodsq"));
}
JSONObject jsonObject = new JSONObject(s);
然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中
JSONObject jsonObject = new JSONObject(jsonString);
Iterator iterator = jsonObject.keys();while(iterator.hasNext()){
key = (String) iterator.next();
value = jsonObject.getString(key);
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流