第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Gson Java 讀取 Json 格式的問題

使用 Gson Java 讀取 Json 格式的問題

弒天下 2022-11-02 16:01:10
我需要將一個完整的字符串轉(zhuǎn)換為 Json 格式,挑戰(zhàn)在于在有效負(fù)載中有一個嵌套字段,同樣需要將其讀取為 Json。我的 Java 代碼如下所示:首先我讀了字符串:    String payload    ="{\"appId\":\"APP02\",\"employeeId\":\"789-33-3887\",\"name\":\"Paolo Ledner\",\"phonenumber\":\"757.910.0396\",\"beer\":\"Sierra Nevada Bigfoot Barleywine Style Ale\",\"company\":\"Schmidt LLC\",\"address\":\"{\\\"street\\\":\\\"Coralie Trafficway\\\",\\\"zipcode\\\":\\\"12291\\\"}\"}";現(xiàn)在我閱讀了我的第一個 JSON 對象:Gson g = new Gson();JsonElement jelem = g.fromJson(payload,JsonElement.class);JsonObject jobj = jelem.getAsJsonObject();這會正確返回 Json 對象,但我無法從嵌套字段中讀取鍵address,然后我需要讀取該字段的內(nèi)容,將其轉(zhuǎn)換為字符串,然后根據(jù)我的邏輯應(yīng)用相同的方法來獲取 Json 格式和閱讀我需要的鑰匙,這是這一步:String address = jobj.get("address").toString().substring(1,jobj.get("address").toString().length()-1);JsonElement jeaddress = g.fromJson(address, JsonElement.class);JsonObject jaddress = jeaddress.getAsJsonObject();System.out.println(jaddress.get("zipcode"));問題:字符串a(chǎn)ddress正確返回,{\"street\":\"Coralie Trafficway\",\"zipcode\":\"12291\"}但是當(dāng)我嘗試打印 jaddress.zipcode 時出現(xiàn)錯誤:線程“主”com.google.gson.JsonSyntaxException 中的異常:com.google.gson.stream.MalformedJsonException:第 1 行第 2 列路徑 $ 的預(yù)期名稱。在 com.google.gson.Gson.fromJson(Gson.java:902) 在 com.google.gson.Gson.fromJson(Gson.java:852) 在 com.google.gson.Gson.fromJson(Gson.java:801 ) 在 bncingestion.kafkaconsumer.validating_payload(kafkaconsumer.java:29) 在 bncingestion.kafkaconsumer.main(kafkaconsumer.java:15) 的 com.google.gson.Gson.fromJson(Gson.java:773) 由:com.google .gson.stream.MalformedJsonException:第 1 行第 2 列路徑 $ 的預(yù)期名稱。在 com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1559) 在 com.google.gson.stream.JsonReader.doPeek(JsonReader.java:513) 在 com.google.gson.stream.JsonReader.hasNext (JsonReader.java:414) 在 com.google.gson.internal。這個轉(zhuǎn)換的另一個版本沒有刪除"是在這里:String address = jobj.get("address").toString();JsonElement jeaddress = g.fromJson(address, JsonElement.class);JsonObject jaddress = jeaddress.getAsJsonObject();System.out.println(jaddress.get("zipcode"));我很感激任何幫助。謝謝
查看完整描述

1 回答

?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗 獲得超6個贊

調(diào)用jobj.get("address").toString()將值 (a) 格式化JsonElement為 JSON,并且由于該值是字符串,因此它會添加引號并轉(zhuǎn)義內(nèi)容。不要那樣做,即不要toString()顯式或隱式調(diào)用 ,如果你在追求value

將行替換為String address = jobj.get("address").getAsString();
也將行替換為System.out.println(jaddress.get("zipcode").getAsString());


查看完整回答
反對 回復(fù) 2022-11-02
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號