gpt4 book ai didi

java - 在java中解析序列化的json有效负载

转载 作者:行者123 更新时间:2023-12-01 04:16:03 25 4
gpt4 key购买 nike

我又在和 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"}}}

例如,我想从序列化负载中获取金额值。问题是它不是一个 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 示例。

请任何人帮忙。

最佳答案

您不需要示例,您需要查看 JSON 并思考一下。

serializedPayload 一开始就不是一个 JSON 对象,它实际上是一个字符串,里面编码了另一段 json,有点像俄罗斯的嵌套娃娃(坦白说,这是令人厌恶的)。

您需要获取字符串,然后使用另一个 JSONObject 再次解析它,类似于:

String payload = data..getJSONObject("xml-fragment").getJSONObject("payloadModel").getString("serializedPayload");
JSONObject theRealData = new JSONObject(payload);

关于java - 在java中解析序列化的json有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19433272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com