Java 如何检查特定的键和值在JSONArray中是否可用

Java 如何检查特定的键和值在JSONArray中是否可用,java,json,Java,Json,我有一个JSONArray,我需要获取这个JSONArray中是否有特定的键值。比方说,我有一个特定的键值对,比如当前就业状态:False,我需要验证这个键值对在我的JSONArray中是否可用。我的JSONArray如下: [ { "last_seen":1557908766238, "distinct_id":"11cb639f-cbf7-499c- a1cf-e3ff4466a093", "time":1557908766238, "p

我有一个JSONArray,我需要获取这个JSONArray中是否有特定的键值。比方说,我有一个特定的键值对,比如当前就业状态:False,我需要验证这个键值对在我的JSONArray中是否可用。我的JSONArray如下:

[
   {
      "last_seen":1557908766238,
      "distinct_id":"11cb639f-cbf7-499c- a1cf-e3ff4466a093",
      "time":1557908766238,
      "properties":{
         "$browser_version":74,
         "$name":"Jessica Claire",
         "$timezone":"Asia/Kolkata",
         "$os":"Windows",
         "$email":"19_05_15_135529631_ebMPR@email-qa.livecareer.com",
         "$initial_referring_domain":"$direct",
         "userid":"11cb639f-cbf7-499c-a1cf-e3ff4466a093",
         "$first_name":"Jessica",
         "Current Employment Status":"FALSE",
         "enter builder":1,
         "fedex experience":"FALSE",
         "ResumeTips Permission":"TRUE",
         "id":"11cb639f-cbf7-499c-a1cf-e3ff4466a093",
         "LCNews Permission":"TRUE",
         "Document Creation Mode":"scratch",
         "Email Valid":"False",
         "$last_name":"Claire",
         "Payment Status":"Not Started",
         "Work Experience Modal":"TRUE",
         "$city":"Noida",
         "Subscription Status":"FALSE",
         "Job Alerts Permission":"TRUE",
         "sign up":1,
         "$browser":"Chrome",
         "userId":"11cb639f-cbf7-499c-a1cf-e3ff4466a093",
         "$country_code":"IN",
         "$region":"Uttar Pradesh",
         "One Time Purchase":"FALSE",
         "$last_seen":"2019-05-15T08:26:06.000Z",
         "Last enter builder":"2019-05-15T08:24:01.000Z",
         "Last sign up":"2019-05-15T08:26:03.000Z",
         "$initial_referrer":"$direct",
         "EduOps Permission":"TRUE"
      },
      "labels":[

      ]
   }
]

如果存在,它应该打印true,如果不存在,它应该打印false。

我使用jar将字符串解析为JSon

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class test {
public static void main(String[] args) {
    String temp = "[{\"last_seen\":1557908766238,\"distinct_id\":\"11cb639f-cbf7-499c- "
            + "a1cf-e3ff4466a093\",\"time\":1557908766238,\"properties\": {\"$browser_version\":74,"
            + " \" $name\":\"Jessica Claire\",\"$timezone\":\"AsiaKolkata\","
            + "\"$os\":\"Windows\",\"$email\":\"19_05_15_135529631_ebMPR@email-qa.livecareer.com\",\"$initial_referring_domain\":\"$direct\",\"userid\":\"11cb639f-cbf7-499c-a1cf-e3ff4466a093\",\"$first_name\":\"Jessica\",\"Current Employment Status\":\"FALSE\",\"enter builder\":1,\"fedex experience\":\"FALSE\",\"ResumeTips Permission\":\"TRUE\",\"id\":\"11cb639f-cbf7-499c-a1cf-e3ff4466a093\",\"LCNews Permission\":\"TRUE\",\"Document Creation Mode\":\"scratch\",\"Email Valid\":\"False\",\"$last_name\":\"Claire\",\"Payment Status\":\"Not Started\",\"Work Experience Modal\":\"TRUE\",\"$city\":\"Noida\",\"Subscription Status\":\"FALSE\",\"Job Alerts Permission\":\"TRUE\",\"sign up\":1,\"$browser\":\"Chrome\",\"userId\":\"11cb639f-cbf7-499c-a1cf-e3ff4466a093\",\"$country_code\":\"IN\",\"$region\":\"Uttar Pradesh\",\"One Time Purchase\":\"FALSE\",\"$last_seen\":\"2019-05-15T08:26:06.000Z\",\"Last enter builder\":\"2019-05-15T08:24:01.000Z\",\"Last sign up\":\"2019-05-15T08:26:03.000Z\",\"$initial_referrer\":\"$direct\",\"EduOps Permission\":\"TRUE\"},\"labels\":[]}]";

String findkeyvalue = "Current Employment Status:False";


boolean flag =  FindValue(temp , findkeyvalue);

System.out.println(flag);
}

private static boolean FindValue(String temp, String findkeyvalue) {
    try {
        JSONParser jsonParser = new JSONParser();

        JSONArray array = (JSONArray) jsonParser.parse(temp);

        for (int i = 0; i < array.size(); i++) {
            System.out.println(array.get(i).toString());
             return  travertillLast(array.get(i).toString() , findkeyvalue);
        }

    } catch (Exception e) {
        return false;
    }
    return false;
}

private static boolean   travertillLast(String string, String findkeyvalue) throws ParseException {
    JSONParser jsonParser = new JSONParser();

    JSONObject jsonObj = (JSONObject) jsonParser.parse(string);

    System.out.println(jsonObj);
       for (Object key : jsonObj.keySet()) {
            //based on you key types
            String keyStr = (String)key;
            Object keyvalue = jsonObj.get(keyStr);

            //Print key and value
            String keyandValuue = keyStr + ":" + keyvalue;
            System.out.println(keyandValuue);
            if(keyandValuue.trim().equalsIgnoreCase(findkeyvalue)){
                return true;
            }

            //for nested objects iteration if required
            if (keyvalue instanceof JSONObject)
                return travertillLast(keyvalue+"",findkeyvalue);
        }
    return false;
    // TODO Auto-generated method stub

}
}
import org.json.simple.JSONArray;
导入org.json.simple.JSONObject;
导入org.json.simple.parser.JSONParser;
导入org.json.simple.parser.ParseException;
公开课考试{
公共静态void main(字符串[]args){
String temp=“[{”last\u seen\”:1557908766238,“distinct\u id\”:\“11cb639f-cbf7-499c-
+“a1cf-e3ff4466a093\,”时间\“:1557908766238,\”属性\“:{\“$browser\u version\”:74,”
+“\“$name\”:\“Jessica Claire\”,“$timezone\”:“AsiaKolkata\”,”
+“\$os\”:“Windows\”,“$email\”:\“19\u 05\u 15\u 135529631_ebMPR@email-qa.livecareer.com\“,“$initial\”引用域\“:“$direct\”,“userid\”:“11cb639f-cbf7-499c-a1cf-e3ff4466a093\”,“$first\”:“Jessica\”,“当前就业状态\”“FALSE\”,“enter builder\”:1,“联邦快递体验\”“FALSE\”,“简历提示权限\”“TRUE\”,“id\:”11cb639f-cbf7-499c-a1cf-e3ff4466a093\”,“LCNews权限”:“TRUE\”,“文档创建模式”:“scratch\”,“电子邮件有效”:“False\”,“$last\”:“Claire\”,“付款状态”:“未启动”,“工作体验模式”:“TRUE\”,“$city\”:“Noida\”,“订阅状态”:“False\”,“工作通知权限”:“注册”:“TRUE浏览器”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,操作权限\“:\”TRUE\“},\“labels\”:[]}]”;
String findkeyvalue=“当前就业状态:False”;
布尔标志=FindValue(临时、findkeyvalue);
System.out.println(标志);
}
私有静态布尔FindValue(字符串临时值、字符串findkeyvalue){
试一试{
JSONParser JSONParser=新的JSONParser();
JSONArray数组=(JSONArray)jsonParser.parse(temp);
对于(int i=0;i
您可以使用JsonArray和JsonObject来实现这一点。使用org.json maven依赖项

import java.io.IOException;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class Test {

    public static void main(String[] args) throws IOException, JSONException {

        String sb = "[{\"last_seen\":1557908766238,\"distinct_id\":\"11cb639f-cbf7-499c- a1cf-e3ff4466a093\",\"time\":1557908766238,\"properties\": {\"$browser_version\":74,\"$name\":\"Jessica Claire\",\"$timezone\":\"Asia/Kolkata\",\"$os\":\"Windows\",\"$email\":\"19_05_15_135529631_ebMPR@email-qa.livecareer.com\",\"$initial_referring_domain\":\"$direct\",\"userid\":\"11cb639f-cbf7-499c-a1cf-e3ff4466a093\",\"$first_name\":\"Jessica\",\"Current Employment Status\":\"FALSE\",\"enter builder\":1,\"fedex experience\":\"FALSE\",\"ResumeTips Permission\":\"TRUE\",\"id\":\"11cb639f-cbf7-499c-a1cf-e3ff4466a093\",\"LCNews Permission\":\"TRUE\",\"Document Creation Mode\":\"scratch\",\"Email Valid\":\"False\",\"$last_name\":\"Claire\",\"Payment Status\":\"Not Started\",\"Work Experience Modal\":\"TRUE\",\"$city\":\"Noida\",\"Subscription Status\":\"FALSE\",\"Job Alerts Permission\":\"TRUE\",\"sign up\":1,\"$browser\":\"Chrome\",\"userId\":\"11cb639f-cbf7-499c-a1cf-e3ff4466a093\",\"$country_code\":\"IN\",\"$region\":\"Uttar Pradesh\",\"One Time Purchase\":\"FALSE\",\"$last_seen\":\"2019-05-15T08:26:06.000Z\",\"Last enter builder\":\"2019-05-15T08:24:01.000Z\",\"Last sign up\":\"2019-05-15T08:26:03.000Z\",\"$initial_referrer\":\"$direct\",\"EduOps Permission\":\"TRUE\"},\"labels\":[]}]";
        JSONArray jsonArray = new JSONArray(sb);
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            Object value = null;
            try {
                JSONObject properties = (JSONObject) jsonObject.get("properties");
            value = properties.get("Current Employment Status");

            } catch (JSONException e) {
                //print flase if not found
                System.out.println("false");
            }
            //print the value if found
            System.out.println("Value =" + value);

        }

    }
}
import java.io.IOException;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
公开课考试{
公共静态void main(字符串[]args)抛出IOException、JSONException{
字符串sb=“[{\“上次看到的”\”:1557908766238,“不同的id\”:“11cb639f-cbf7-499c-a1cf-e3ff4466a093\”,“时间”:1557908766238,\“属性”:{“$browser\u version\”:74,“$name\”:“Jessica Claire\”,“$timezone\”:“亚洲/加尔各答”,“$os\”:“Windows\”,“$email\”:“19$U 1359631_ebMPR@email-qa.livecareer.com\”,\“$initial\u referenting\u domain\”:\“$direct\“,”用户名\“:\”11cb639f-cbf7-499c-a1cf-e3ff4466a093\”,“$first\U name\”:”杰西卡\“,”当前就业状况\“:”假\“,”进入建设者\“:1,\”联邦快递体验\“:”假\“,”简历提示权限\“:”真\“,”身份\“:”11cb639f-cbf7-499c-a1cf-e3ff4466a093\”,“LCNews权限\“,”创建文档\“,”有效模式\:”真电子邮件\:\“False\”、“$last\u name\”:“Claire\”、“$Payment Status\”:“Not Started\”、“$city\”:“Noida\”、“$Subscription Status\”:“False\”、“$Job Alerts Permission\”:“TRUE\”、“$sign up\”:1、“$browser\”:“Chrome\”、“userId\”:“11cb639f-cbf7-499c-a1cf-E344A093、“$FFU代码:”、“$region\”、“$Pruttar\”、“$h\”、“$Buttar\”一次性购买\“:“FALSE\”,“$last\”,“2019-05-15T08:26:06.000Z\”,“last enter builder\”,“2019-05-15T08:24:01.000Z\”,“last sign\”,“2019-05-15T08:26:03.000Z\”,“$initial\U Referer\”,“$direct\”,“Edoops Permission\”:“TRUE\”,“labels\”:[];
JSONArray JSONArray=新JSONArray(sb);
for(int i=0;i
我将此json存储在一个名为findKey.json的文件中

String path=“others\\findKey.json”;
文件f=新文件(路径);
JSONParser=新的JSONParser();
Object obj=parser.parse(新文件读取)