简体   繁体   English

使用 Java 从 Json Payload 获取字段 ID 值

[英]Get Field ID Value from Json Payload using Java

I am trying to get the field_id for the below payload however I am stuck with the below code.我正在尝试获取以下有效负载的 field_id,但是我坚持使用以下代码。 I need the field_id value "70ce3705-0191-4ba4-a635-65108f1c3dde"我需要 field_id 值“70ce3705-0191-4ba4-a635-65108f1c3dde”

    JSONParser parser = new JSONParser();
    JSONObject jsonObject = (JSONObject) parser.parse(new FileReader(jsonfilepath));
    JSONObject valid = (JSONObject) jsonObject.get("valid");
    JSONArray applications = (JSONArray) jsonObject.get("applications_added");

Payload:有效载荷:

{
    "valid": {
  "applications_added": [
    {
          "id": "f8ca0bda-a10c-4e8d-9c1b-6bfd24e93395",
      "status": "active",
      "custom_fields": [
          {
          "field_id": "70ce3705-0191-4ba4-a635-65108f1c3dde",
          "option_id": "db7bb12d-a26f-413e-b9e5-79af8c28b1e7"
        }

      ]
    }
  ]
}
    }

In your code instead of jsonObject.get("applications_added") you sould write valid.get("applications_added")在你的代码而不是 jsonObject.get("applications_ added") 你应该写 valid.get("applications_ added")

The complete solution for your problem.您的问题的完整解决方案。

    JSONParser parser = new JSONParser();
    JSONObject jsonObject = (JSONObject) parser.parse(new FileReader(jsonfilepath));
    JSONObject valid = (JSONObject) jsonObject.get("valid");
    JSONArray applications = (JSONArray) valid.get("applications_added");
    JSONObject application  = (JSONObject)applications.get(0);
    JSONArray custom_fields = (JSONArray) application.get("custom_fields");
    JSONObject custom_field  = (JSONObject)custom_fields.get(0);
    String field_id = (String)custom_field.get("field_id");

Try it:尝试一下:

    String payload = "your json";
    try {
        JSONObject jsonObject =new JSONObject(payload);
        JSONObject valid = jsonObject.getJSONObject("valid");
        JSONArray apps = valid.getJSONArray("applications_added");
        for(int i=0;i<apps.length();i++){
            JSONObject app = apps.getJSONObject(i);
            JSONArray appFields = app.getJSONArray("custom_fields");
            for(int j=0;j<appFields.length();j++){
                JSONObject field = appFields.getJSONObject(j);
                String fieldId = field.getString("field_id");
                System.out.println(fieldId);
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM