2 回答

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
JsonParser
將您的 json 解析為JsonElement
結(jié)構(gòu)。您看到的行為是正常的,因?yàn)槟谑褂?code>toString的方法JsonElement
。要實(shí)現(xiàn)您的目標(biāo),只需使用JsonElement::getAsString
方法:
String?resultCode?=?jo.get("response").getAsJsonObject().get("body").getAsJsonObject().get("resultInfo").getAsJsonObject().get("resultCode").getAsString();
這給出了SUCCESS
而不是"SUCCESS"
請(qǐng)注意,這JsonElement
是一個(gè)抽象類,擴(kuò)展該類的類將覆蓋這些輔助getAs...
方法。在你的情況下JsonPrimitive::getAsString
將被調(diào)用。
您還可以為 json 創(chuàng)建一個(gè) POJO 類,并用于Gson::fromJson
將 json 解析為 POJO 類的對(duì)象。

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
根據(jù) @Michalk 的輸入:我知道讀取 JSON 數(shù)據(jù)的簡(jiǎn)單方法是使用 Gson::fromJson 并為 json 創(chuàng)建 POJO 類。
現(xiàn)在我有名為:CreateOrderJSONResponse 的 POJO 類
Gson::fromJson
樣本 :
Gson gson = new Gson();
CreateOrderJSONResponse responseJson = gson.fromJson(inputJSON, CreateOrderJSONResponse.class);
訪問數(shù)據(jù):
? ? String resultCodeText =? ?responseJson.getResponse().getBody().getResultInfo().getResultCode();
? ? String resultCodeId =? ? ?responseJson.getResponse().getBody().getResultInfo().getResultCodeId();
? ? String resultStatus =? ? ?responseJson.getResponse().getBody().getResultInfo().getResultStatus();
? ? String checkoutUrl =? ? ? responseJson.getResponse().getBody().getCheckoutUrl();
與使用以下Gson::fromJson示例代碼直接訪問文件相比,上面的示例運(yùn)行順利,并且看起來很整潔:
?JsonObject jo = parser.parse(inputJSON).getAsJsonObject();
?String resultCodeText = jo.get("response").getAsJsonObject().get("body").getAsJsonObject().get("resultInfo").getAsJsonObject().getAsJsonPrimitive("resultCode").getAsString();
?String resultCodeId = jo.get("response").getAsJsonObject().get("body").getAsJsonObject().get("resultInfo").getAsJsonObject().getAsJsonPrimitive("resultCodeId").getAsString();
?String resultStatus = jo.get("response").getAsJsonObject().get("body").getAsJsonObject().get("resultInfo").getAsJsonObject().getAsJsonPrimitive("resultStatus").getAsString();
?String checkoutUrl = jo.get("response").getAsJsonObject().get("body").getAsJsonObject().getAsJsonPrimitive("checkoutUrl").getAsString();
注意:我找到了 JSON 或 JAVA、SCALA、POJO 生成器工具的鏈接作為GitHub訪問,您可以在此處訪問
添加回答
舉報(bào)