2 回答

TA貢獻2019條經驗 獲得超9個贊
JsonParser
將您的 json 解析為JsonElement
結構。您看到的行為是正常的,因為您正在使用toString
的方法JsonElement
。要實現您的目標,只需使用JsonElement::getAsString
方法:
String?resultCode?=?jo.get("response").getAsJsonObject().get("body").getAsJsonObject().get("resultInfo").getAsJsonObject().get("resultCode").getAsString();
這給出了SUCCESS
而不是"SUCCESS"
請注意,這JsonElement
是一個抽象類,擴展該類的類將覆蓋這些輔助getAs...
方法。在你的情況下JsonPrimitive::getAsString
將被調用。
您還可以為 json 創建一個 POJO 類,并用于Gson::fromJson
將 json 解析為 POJO 類的對象。

TA貢獻1770條經驗 獲得超3個贊
根據 @Michalk 的輸入:我知道讀取 JSON 數據的簡單方法是使用 Gson::fromJson 并為 json 創建 POJO 類。
現在我有名為:CreateOrderJSONResponse 的 POJO 類
Gson::fromJson
樣本 :
Gson gson = new Gson();
CreateOrderJSONResponse responseJson = gson.fromJson(inputJSON, CreateOrderJSONResponse.class);
訪問數據:
? ? 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示例代碼直接訪問文件相比,上面的示例運行順利,并且看起來很整潔:
?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訪問,您可以在此處訪問
添加回答
舉報