JSONArray json = [{...},{...},{...}];
for (int i = 0; i < json.length(); i++) {
JSONObject jsonObj = json.getJSONObject(i);
String id = jsonObj.getString("ID");
String name = jsonObj.getString("name");
...
}
JSONArray的遍历,并修改josn对象中的值JSONArray taskContentArr = taskContentObj.getJSONArray("ops");
for(int i=0;i<taskContentArr.size();i++){
// 遍历 jsonarray 数组,把每一个对象转成 json 对象
JSONObject insertObj = taskContentArr.getJSONObject(i);
try {
JSONObject imageObj = insertObj.getJSONObject("insert");
if (imageObj.containsKey("image")) {
String imagePath = imageObj.getString("image");
String fileName = imagePath.substring(imagePath.lastIndexOf("/") + 1);
imageObj.put("image", fileName);
}
} catch (Exception e) {
}
}
替换JSONArray中指定字段名称的值value忽略JSONObject中指定字段名称大小写,依旧可以替换该字段对应的值。
即:指定的字段名称和输出的字段名称大小写不一致,但依旧可以替换该字段名称的值,替换后按原来字段输出
/**
*inputParam jsonArray中jsonobject的key的名称,inputParam名字忽略大小写
*paramValue 要修改inputParam原来对应的值,将原来的值改成paramValue
*/
public static JSONArray replaceValue2JSONArray(JSONArray array,String inputParam,String paramValue) {
JSONArray jsonArray = new JSONArray();
if (array == null || array.isEmpty()) {
return jsonArray;
}
for (int i = 0; i < array.size(); i++) {
JSONObject jsonObject2 = array.getJSONObject(i);
Set<String> keys = jsonObject2.keySet();
for (String curKey : keys) {
if (curKey.equalsIgnoreCase(inputParam)) {
jsonObject2.put(curKey, paramValue) ;
}
}
jsonArray.add(jsonObject2);
}
return jsonArray;
}
一:遍历JsonArray
String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ; // 一个未转化的字符串
JSONArray json = JSONArray.fromObject(str ); // 首先把字符串转成 JSONArray 对象
if(json.size()>0){
for(int i=0;i<json.size();i++){
JSONObject job = json.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
System.out.println(job.get("name")+"=") ; // 得到 每个对象中的属性值
}
}
二:遍历JsonObject
JSONObject jsonObject = new JSONObject(jsonString);
Iterator iterator = jsonObject.keys();
while(iterator.hasNext()){
key = (String) iterator.next();
value = jsonObject.getString(key);
}