में JSON पार्सिंग तो, मैं इस नेस्टेड JSON स्ट्रिंग को पार्स करने के लिए कुछ समय की कोशिश कर रहा हूं। यदि यह नियमित जावा था, या यहां तक कि php, मुझे यकीन है कि यह बहुत पहले किया गया होगा। दुर्भाग्य से मैं इस पर जे 2 एमई के साथ फंस गया हूँ। कुछ खोजों के माध्यम से मैंने पाया कि lone JSON parser से बाहर निकलता है। यह मुझे similar question पर कुछ खुदाई के माध्यम से मिला। मैंने another question पर एक उदाहरण के साथ अपने आप पर कुछ काम करने की कोशिश की है। हालांकि, मुझे अभी भी कुछ कठिनाइयों का सामना करना पड़ रहा है। मैं अब समझाऊंगा।जे 2 एमई
यह JSON स्ट्रिंग मैं पार्स करने के लिए कोशिश कर रहा हूँ है:
{"Result":"Success","Code":"200","CustomerInfo":"{\"clientDisplay\":{\"customerId\":429,\"globalCustNum\":\"0012-000000429\",\"displayName\":\"Hugo Daley\",\"parentCustomerDisplayName\":\"G-KINGSTON\",\"branchId\":12,\"branchName\":\"Bangalore_branch1244724101456\",\"externalId\":\"123000890\",\"customerFormedByDisplayName\":\"New User1244724101456\",\"customerActivationDate\":\"2012-06-17\",\"customerLevelId\":1,\"customerStatusId\":3,\"customerStatusName\":\"Active\",\"trainedDate\":null,\"dateOfBirth\":\"1950-10-10\",\"age\":61,\"governmentId\":\"100000090\",\"clientUnderGroup\":true,\"blackListed\":false,\"loanOfficerId\":17,\"loanOfficerName\":\"New User1244724101456\",\"businessActivities\":null,\"handicapped\":null,\"maritalStatus\":null,\"citizenship\":null,\"ethnicity\":null,\"educationLevel\":null,\"povertyStatus\":null,\"numChildren\":null,\"areFamilyDetailsRequired\":false,\"spouseFatherValue\":null,\"spouseFatherName\":null,\"familyDetails\":null},\"customerAccountSummary\":{\"globalAccountNum\":\"001200000001259\",\"nextDueAmount\":\"2128.0\"},\"clientPerformanceHistory\":{\"loanCycleNumber\":0,\"lastLoanAmount\":\"0.0\",\"noOfActiveLoans\":0,\"delinquentPortfolioAmount\":\"0.0\",\"totalSavingsAmount\":\"1750.0\",\"meetingsAttended\":0,\"meetingsMissed\":0,\"loanCycleCounters\":[],\"delinquentPortfolioAmountInvalid\":false},\"address\":{\"displayAddress\":null,\"city\":\"\",\"state\":\"\",\"zip\":\"\",\"country\":\"\",\"phoneNumber\":\"\"},\"recentCustomerNotes\":[{\"commentDate\":\"2012-06-17\",\"comment\":\"appr\",\"personnelName\":\"New User1244724101456\"}],\"customerFlags\":[],\"loanAccountsInUse\":[{\"globalAccountNum\":\"001200000001262\",\"prdOfferingName\":\"Hawker Loan\",\"accountStateId\":3,\"accountStateName\":\"Application Approved\",\"outstandingBalance\":\"15643.0\",\"totalAmountDue\":\"8977.0\"},{\"globalAccountNum\":\"001200000001279\",\"prdOfferingName\":\"Hazina Micro Loan\",\"accountStateId\":2,\"accountStateName\":\"Application Pending Approval\",\"outstandingBalance\":\"6439.0\",\"totalAmountDue\":\"1716.0\"},{\"globalAccountNum\":\"001200000001280\",\"prdOfferingName\":\"Car Finance\",\"accountStateId\":3,\"accountStateName\":\"Application Approved\",\"outstandingBalance\":\"381.5\",\"totalAmountDue\":\"120.0\"}],\"savingsAccountsInUse\":[{\"globalAccountNum\":\"001200000001260\",\"prdOfferingName\":\"Current Account\",\"accountStateId\":16,\"accountStateName\":\"Active\",\"savingsBalance\":\"1750.0\",\"prdOfferingId\":null}],\"customerMeeting\":{\"meetingSchedule\":\"Recur every 1 Week(s) on Monday\",\"meetingPlace\":\"KINGSTON\"},\"activeSurveys\":false,\"customerSurveys\":[],\"closedLoanAccounts\":[{\"globalAccountNum\":\"001200000001261\",\"prdOfferingName\":\"AUTO LOAN-2\",\"accountStateId\":10,\"accountStateName\":\"Cancel\",\"outstandingBalance\":\"2576.0\",\"totalAmountDue\":\"206.0\"}],\"closedSavingsAccounts\":[]}"}
चिंता मत करो यह सिर्फ नमूना डेटा है, कुछ भी नहीं यहाँ असली।
अब मुझे ग्राहक संख्या, नाम, पता, और बचत खाता शेष की आवश्यकता है। यह वह कोड है जिसका मैंने इसे पार्स करने के लिए उपयोग किया है:
public CustomerInfo(String jsonTxt) {
try {
JSONObject json = new JSONObject(jsonTxt);
JSONObject customer = json.getJSONObject("CustomerInfo");
custNo = json.getString("globalCustNum");
custName = json.getString("displayName");
address = json.getString("DisplayAddress");
savAcctBal = json.getDouble("totalSavingsAmount");
} catch (final JSONException je) {
je.printStackTrace();
}
}
यह निश्चित रूप से एक JSONException फेंकता है। मैंने सीखा है कि JSON लाइब्रेरी में कुछ कीड़े हो सकती हैं। मैंने प्रिंट स्टेटमेंट के साथ कुछ चालें की हैं। यह पता चला है कि यह JSON स्ट्रिंग के पहले तत्व का उपभोग करना पसंद करता है। यह घोंसला वाले तत्वों के माध्यम से जा रहा है जैसे कि हम यहां उदाहरण में हैं।
क्या कोई विकल्प है जिसका मैं उपयोग कर सकता हूं?
यदि उत्तर आपके लिए काम करता है, तो इसे स्वीकार के रूप में चिह्नित करें ताकि यह उन लोगों की सहायता कर सके जो एक ही चीज़ की खोज करते हैं। :) – Spudley
हाँ, यह वास्तव में मुझे थोड़ी देर के लिए बेवकूफ की तरह लग रहा था। मैं इसे स्वीकार करूंगा जब यह मुझे अनुमति देगा। बहुत बहुत धन्यवाद दोस्तों! :) –
क्या आपके पास अभी भी जार फ़ाइल है? मुझे जेसन-मी जार कहीं भी नहीं मिला: एस – eddy