0

我有一个 JSON 对象列表: [{"name":"abc","id":"123"},{"name":"xyz","id":"345"}..]和一组参数,比如{"abc","def","xyz"}.我想检查第二组参数是否包含不在第一个数组中 JSON 对象的名称字段中的值。

我遵循的算法是:

Boolean flag = false;
   for{name : nameSet} {
     if(jsonObject.get("name")!=name{
       flag = true;
     }
   }

   if(flag){
     System.out.print("not matched");
   }

有什么有效的方法吗?请建议?

4

1 回答 1

0

您没有使用 Json 数组的每个元素检查每个元素。您将需要一个额外的 for 循环。

编辑: 将 Json 数据添加到键data中。参考String json.

   Boolean found = false, flag = false;
   String json = "{ \"data\": [{"name":"abc","id":"123"},{"name":"xyz","id":"345"}]}"
   JSONObject object = new JSONObject(json);
   JSONObject getData = object.getJSONArray("data");

   for{name : nameSet} {
     found = false;
     for(int i = 0; i < getData.size(); i++) {
        JSONObject jsonObject = getData.getJSONObject(i);
        if(jsonObject.get("name").equals(name)){
          found= true;
          break;
        }
     }
     if(!found){
         flag = true;
         break;
     }
   }

   if(flag){
     System.out.print("not matched");
   }
于 2018-05-11T09:06:15.907 回答