我再次与json苦苦挣扎:(这是原始回复:
{"xml-fragment":{"workItem":{"@id":"251","@version":"74"},"presentation":{"@formIdenitifier":"1.0.0.201310151421/openspaceGWTPull_DefaultChannel/.default/Npda/NpdaProcess/UserReconcile/UserReconcile.gwt.json","@type":"GWT_FORM","@version":"1.0.0.201310151421","@activityName":"UserReconcile"},"workTypeDetail":{"@typePiled":"false","@pilingLimit":"0","@uid":"WT__RIoPEDWTEeOr4-yR8gXd7g","@version":"1.0.0.201310151421"},"payloadModel":{"serializedPayload":"{items:[{\"$param\":\"BankReconInput\",\"mode\":\"IN\",\"$value\":[{\"bankAccountTx_pk\":\"55213\",\"amount\":\"10099\",\"reference\":\"ImAmReference\",\"date\":\"2013-10-15\",\"reconType\":\"?\",\"amxcaseref\":\"pvm:0a12iq\",\"$type\":\"coza.npda.bom.BankTransaction\"}]}]}","@payloadMode":"JSON"}}}
例如,我想从 serializedPayload 中获取金额的值。问题是它不是一个 json 对象。如果我尝试:
obj = new JSONObject(jsonResp).getJSONObject("xml-fragment").getJSONObject("payloadModel");
这以字符串形式返回给我 serializedPayload,以字符串形式返回 @payloadMode。
我试过了:
obj = new JSONObject(jsonResp).getJSONObject("xml-fragment").getJSONObject("payloadModel").getJSONObject("serializedPayload");
它确认 serializedPayload 不是 json 对象。
我查看了这个示例: http: //developer.android.com/reference/org/json/JSONTokener.html 但它的数据并不像我的那么复杂,我正在努力寻找如何做到这一点的 java 示例。
请任何人都可以帮忙。