그래서이 중첩 JSON 문자열을 구문 분석하려고했습니다. 이것이 정규 자바 또는 PHP 일지라도, 나는 이것이 오래전에 이루어 졌을 것이라고 확신한다. 불행히도이 J2ME에 붙어 있습니다. 일부 검색을 통해 나는 lone JSON parser이 있다는 것을 알았습니다. 이 부분은 similar question에서 파고 들었습니다. another question에 대한 예제와 함께 독자적으로 몇 가지 작업을 시도했습니다. 그러나, 나는 아직도 약간 어려움이있다. 나는 지금 설명 할 것이다.J2ME에서 JSON 구문 분석
이것은 내가 구문 분석하는 데 노력하고있어 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
그래, 이건 정말 내 바보처럼 느껴졌다. 나는 그것을 허용 할 때 그것을 받아 들일 것이다. 고마워요! :) –
아직도 jar 파일이 있습니까? 나는 json-me jar를 찾을 수 없다. S – eddy