代码之家  ›  专栏  ›  技术社区  ›  Ankit Chowhan

使用抛弃库在JAVA中进行JSON迭代

  •  1
  • Ankit Chowhan  · 技术社区  · 8 年前

    我的Java Spring应用程序中有来自SalesForce的复杂JSON数据。现在我想得到一些特定的值,比如 ID , Fund_Ops_Code__c , Type , Product_Type__c , Signed_Date__c , Signed_State__c 等等但JSON中没有模式。我必须使用Java中的抛弃库。有人能帮我迭代这些值吗?

    {
    "totalSize": 4,
    "done": true,
    "records": [
      {
       "attributes": {
        "type": "COB_Plan_Setup__c",
        "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Setup__c\/a1Xc0000001GgkKEAS"
       },
      "Id": "a1Xc0000001GgkKEAS",
       "Quote_ID__c": "0Q0c0000000Yb0pCAC",
       "Quote_ID__r": {
        "attributes": {
         "type": "Quote",
         "url": "\/services\/data\/v32.0\/sobjects\/Quote\/0Q0c0000000Yb0pCAC"
        },
        "Fund_Product__r": {
         "attributes": {
          "type": "Product2",
          "url": "\/services\/data\/v32.0\/sobjects\/Product2\/01tc00000045sOcAAI"
         },
         "Fund_Ops_Code__c": "MK4000"
        },
        "Fund_Menu__c": "Menu 2",
        "Managed_Accounts_Custom__c": false,
        "Opportunity": {
         "attributes": {
          "type": "Opportunity",
          "url": "\/services\/data\/v32.0\/sobjects\/Opportunity\/006c000000FZdlAAAT"
         },
         "Type": "New Business"
        },
        "Final__c": null,
        "Fund_Margin_Code__c": null,
        "Product_Type__c": "MAP Select Allocated"
       },
       "MSAs__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_MSA__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_MSA__c\/a1Sc0000002dtbGEAQ"
         },
         "Id": "a1Sc0000002dtbGEAQ",
         "Product__c": "Voya Map Select",
         "Signed_Date__c": "2017-05-04",
         "Signed_State__c": "KS"
        }]
       },
       "Plan_Digests__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_Plan_Digest__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Digest__c\/a1gc00000041VTTAA2"
         },
         "Id": "a1gc00000041VTTAA2",
         "Plan_Number__c": null,
         "Company_Name__c": "Aerosol Gas Company, Inc.",
         "Plan_Name__c": null,
         "Permit_Participants_age_50__c": null,
         "Match_Formula__c": null,
         "Translate_MF__c": null
        }]
       },
       "PSAs__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_PSA__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_PSA__c\/a1Tc000001Xxua1EAB"
         },
         "Id": "a1Tc000001Xxua1EAB",
         "Participant_Online_Beneficiary_Storage__c": false,
         "QDIA__c": false,
         "Apply_Voya_Automatic_Enrollment_Service__c": false,
         "Participant_Eligibility_Tracking__c": false,
         "Voya_enroll_pre_poluate_match__c": true,
         "Default_Investment_Option__c": null,
         "Notification_Service__c": false
        }]
       },
       "Other_Agreements__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "Other_Agreement__c",
          "url": "\/services\/data\/v32.0\/sobjects\/Other_Agreement__c\/a1hc0000001D2rBAAS"
         },
         "Id": "a1hc0000001D2rBAAS",
         "Plan_Setup__r": {
          "attributes": {
           "type": "COB_Plan_Setup__c",
           "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Setup__c\/a1Xc0000001GgkKEAS"
          },
          "Quote_ID__r": {
           "attributes": {
            "type": "Quote",
            "url": "\/services\/data\/v32.0\/sobjects\/Quote\/0Q0c0000000Yb0pCAC"
           },
           "Managed_Accounts_Custom__c": false
          }
         },
         "Voya_Fixed_Account_OA__c": null,
         "Voya_Administrative_Record_Keeping_Fee_O__c": null,
         "Basis_Points_Payable_To_Morningstar_OA__c": null,
         "Voya_Fixed_Account_OA__r": null,
         "Allocation_OA__c": 100
        }]
       }
      },
      {
       "attributes": {
        "type": "COB_Plan_Setup__c",
        "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Setup__c\/a1Xc0000000SbC4EAK"
       },
       "Id": "a1Xc0000000SbC4EAK",
       "Quote_ID__c": "0Q0c0000000KrLvCAK",
       "Quote_ID__r": {
        "attributes": {
         "type": "Quote",
         "url": "\/services\/data\/v32.0\/sobjects\/Quote\/0Q0c0000000KrLvCAK"
        },
        "Fund_Product__r": {
         "attributes": {
          "type": "Product2",
          "url": "\/services\/data\/v32.0\/sobjects\/Product2\/01tc00000045sPYAAY"
         },
         "Fund_Ops_Code__c": "MLH000"
        },
        "Fund_Menu__c": "Menu 5",
        "Managed_Accounts_Custom__c": false,
        "Opportunity": {
         "attributes": {
          "type": "Opportunity",
          "url": "\/services\/data\/v32.0\/sobjects\/Opportunity\/006c000000HGQneAAH"
         },
         "Type": "New Business"
        },
        "Final__c": null,
        "Fund_Margin_Code__c": "900",
        "Product_Type__c": "MAP Select Allocated"
       },
       "MSAs__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_MSA__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_MSA__c\/a1Sc0000002abnfEAA"
         },
         "Id": "a1Sc0000002abnfEAA",
         "Product__c": "Voya Map Select",
         "Signed_Date__c": "2017-11-01",
         "Signed_State__c": "CT"
        }]
       },
       "Plan_Digests__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_Plan_Digest__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Digest__c\/a1gc0000004KIWcAAO"
         },
         "Id": "a1gc0000004KIWcAAO",
         "Plan_Number__c": "819999",
         "Company_Name__c": "FISH 5",
         "Plan_Name__c": "Fish 5",
         "Permit_Participants_age_50__c": "Yes",
         "Match_Formula__c": "Employer matches 100% up to 3%",
         "Translate_MF__c": "100-3"
        }]
       },
       "PSAs__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_PSA__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_PSA__c\/a1Tc000001YBhkvEAD"
         },
         "Id": "a1Tc000001YBhkvEAD",
         "Participant_Online_Beneficiary_Storage__c": true,
         "QDIA__c": true,
         "Apply_Voya_Automatic_Enrollment_Service__c": false,
         "Participant_Eligibility_Tracking__c": false,
         "Voya_enroll_pre_poluate_match__c": false,
         "Default_Investment_Option__c": "Target Date",
         "Notification_Service__c": true
        }]
       },
       "Other_Agreements__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "Other_Agreement__c",
          "url": "\/services\/data\/v32.0\/sobjects\/Other_Agreement__c\/a1hc0000000ibQEAAY"
         },
         "Id": "a1hc0000000ibQEAAY",
         "Plan_Setup__r": {
          "attributes": {
           "type": "COB_Plan_Setup__c",
           "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Setup__c\/a1Xc0000000SbC4EAK"
          },
          "Quote_ID__r": {
           "attributes": {
            "type": "Quote",
            "url": "\/services\/data\/v32.0\/sobjects\/Quote\/0Q0c0000000KrLvCAK"
           },
           "Managed_Accounts_Custom__c": false
          }
         },
         "Voya_Fixed_Account_OA__c": null,
         "Voya_Administrative_Record_Keeping_Fee_O__c": null,
         "Basis_Points_Payable_To_Morningstar_OA__c": null,
         "Voya_Fixed_Account_OA__r": null,
         "Allocation_OA__c": 100
        }]
       }
      },
      {
       "attributes": {
        "type": "COB_Plan_Setup__c",
       "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Setup__c\/a1Xc0000001GgkFEAS"
       },
       "Id": "a1Xc0000001GgkFEAS",
       "Quote_ID__c": "0Q0c0000000bmAvCAI",
       "Quote_ID__r": {
        "attributes": {
         "type": "Quote",
         "url": "\/services\/data\/v32.0\/sobjects\/Quote\/0Q0c0000000bmAvCAI"
        },
        "Fund_Product__r": null,
        "Fund_Menu__c": null,
        "Managed_Accounts_Custom__c": false,
        "Opportunity": {
         "attributes": {
          "type": "Opportunity",
          "url": "\/services\/data\/v32.0\/sobjects\/Opportunity\/006c000000FTLE3AAP"
         },
         "Type": "New Business"
        },
        "Final__c": null,
        "Fund_Margin_Code__c": null,
        "Product_Type__c": "Framewor(k) 2012"
       },
       "MSAs__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_MSA__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_MSA__c\/a1Sc0000002dta2EAA"
         },
         "Id": "a1Sc0000002dta2EAA",
         "Product__c": "Voya FrameWork",
         "Signed_Date__c": null,
        "Signed_State__c": null
        }]
       },
       "Plan_Digests__r": null,
       "PSAs__r": null,
       "Other_Agreements__r": null
      },
      {
       "attributes": {
        "type": "COB_Plan_Setup__c",
        "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Setup__c\/a1Xc0000001l5zEEAQ"
       },
       "Id": "a1Xc0000001l5zEEAQ",
       "Quote_ID__c": "0Q0c0000000ghcNCAQ",
       "Quote_ID__r": {
        "attributes": {
         "type": "Quote",
         "url": "\/services\/data\/v32.0\/sobjects\/Quote\/0Q0c0000000ghcNCAQ"
        },
        "Fund_Product__r": {
         "attributes": {
          "type": "Product2",
          "url": "\/services\/data\/v32.0\/sobjects\/Product2\/01tc00000045sQEAAY"
         },
         "Fund_Ops_Code__c": "MK1000"
        },
        "Fund_Menu__c": null,
        "Managed_Accounts_Custom__c": false,
        "Opportunity": {
         "attributes": {
          "type": "Opportunity",
          "url": "\/services\/data\/v32.0\/sobjects\/Opportunity\/006c000000HguLjAAJ"
         },
         "Type": "Existing Business"
        },
        "Final__c": null,
        "Fund_Margin_Code__c": null,
        "Product_Type__c": "MAP Select Allocated"
       },
       "MSAs__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_MSA__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_MSA__c\/a1Sc0000002ayKAEAY"
         },
         "Id": "a1Sc0000002ayKAEAY",
         "Product__c": "Voya Map Select",
         "Signed_Date__c": null,
         "Signed_State__c": null
        }]
       },
       "Plan_Digests__r": {
       "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_Plan_Digest__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Digest__c\/a1gc0000004KWnVAAW"
         },
         "Id": "a1gc0000004KWnVAAW",
         "Plan_Number__c": "775319",
         "Company_Name__c": "New Oppty_1",
         "Plan_Name__c": "TestPlan2018",
         "Permit_Participants_age_50__c": null,
         "Match_Formula__c": null,
         "Translate_MF__c": null
        }]
       },
       "PSAs__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "COB_PSA__c",
          "url": "\/services\/data\/v32.0\/sobjects\/COB_PSA__c\/a1Tc000001YCmv1EAD"
         },
         "Id": "a1Tc000001YCmv1EAD",
         "Participant_Online_Beneficiary_Storage__c": false,
         "QDIA__c": false,
         "Apply_Voya_Automatic_Enrollment_Service__c": false,
         "Participant_Eligibility_Tracking__c": false,
         "Voya_enroll_pre_poluate_match__c": true,
         "Default_Investment_Option__c": null,
         "Notification_Service__c": false
        }]
       },
       "Other_Agreements__r": {
        "totalSize": 1,
        "done": true,
        "records": [{
         "attributes": {
          "type": "Other_Agreement__c",
          "url": "\/services\/data\/v32.0\/sobjects\/Other_Agreement__c\/a1hc0000001uKjlAAE"
        },
         "Id": "a1hc0000001uKjlAAE",
         "Plan_Setup__r": {
          "attributes": {
           "type": "COB_Plan_Setup__c",
           "url": "\/services\/data\/v32.0\/sobjects\/COB_Plan_Setup__c\/a1Xc0000001l5zEEAQ"
          },
          "Quote_ID__r": {
           "attributes": {
            "type": "Quote",
            "url": "\/services\/data\/v32.0\/sobjects\/Quote\/0Q0c0000000ghcNCAQ"
           },
           "Managed_Accounts_Custom__c": false
          }
         },
         "Voya_Fixed_Account_OA__c": null,
         "Voya_Administrative_Record_Keeping_Fee_O__c": null,
         "Basis_Points_Payable_To_Morningstar_OA__c": null,
         "Voya_Fixed_Account_OA__r": null,
         "Allocation_OA__c": 100
        }]
       }
      }
    ]
    }
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   Sharon Ben Asher    8 年前

    您可以使用java JSON-Path 图书馆它有一种强大的查询语言来搜索和检索特定的JSON对象和属性

        try (InputStream is = Files.newInputStream(Paths.get("C://temp/test.json"))) {
            // get all 'Product_Type__c' properties wherever they are
            JSONArray productTypes = JsonPath.read(is, "$..Product_Type__c");
            System.out.println(productTypes.get(0));
        } catch (Exception e) {
            e.printStackTrace();
        }
    

    输出:

    MAP Select Allocated
    
        2
  •  0
  •   Pravin    8 年前

    您可以使用 组织。json。易于理解的 (这是一个谷歌图书馆)。它很容易使用。

    import org.json.simple.JSONObject;
    public static void printJsonObject(JSONObject jsonObj) {
        for (Object key : jsonObj.keySet()) {
            //based on you key types
            String keyStr = (String)key;
            Object keyvalue = jsonObj.get(keyStr);
    
            //Print key and value
            System.out.println("key: "+ keyStr + " value: " + keyvalue);
    
            //for nested objects iteration if required
            if (keyvalue instanceof JSONObject)
                printJsonObject((JSONObject)keyvalue);
        }
    }
    
    推荐文章