3 回答
TA貢獻1842條經(jīng)驗 獲得超22個贊
我建議使用適當?shù)?http 庫來處理像 Volley 或 Retrofit 這樣的請求...JSON 和錯誤處理也是內(nèi)置的,因此可以為此目的完全刪除 AsyncTask
但是你所擁有的很好,只是json在 while 循環(huán)之后不應(yīng)該使用,它只是 http 響應(yīng)的最后一行,而不是完整的 json(假設(shè)有多行)
您真的應(yīng)該考慮解析 中的結(jié)果onPostExecute,甚至可能讓 parse 方法返回一個實際對象,或顯示到 UI
TA貢獻1847條經(jīng)驗 獲得超7個贊
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
String json = sb.toString();
您可以改為使用我的代碼片段,它對我來說工作正常?,F(xiàn)在您可以將 son 變量用于您的 private void parseJSON(String json) 函數(shù)。
TA貢獻1790條經(jīng)驗 獲得超9個贊
您正在將字符串附加到StringBuilder sb = new StringBuilder();. 你必須像這樣調(diào)用,parseJSON(sb.toString());因為String json只是一個指針不包含你想要的實際字符串。
添加回答
舉報
