簡體   English   中英

Android中的Java JSON和字符串

[英]java JSON and string in Android

我正在通過android中的php查詢數據庫。 這是我的相關代碼

String result = null;
InputStream is = null;
StringBuilder sb = null;

is = entity.getContent();

BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
   sb.append(line + "\n");
}
is.close();
result = sb.toString();    
JSONArray jArray = new JSONArray(result);

這是我嘗試解析的鏈接和返回的數據。

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522%2C151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AIzaSyCX8PnG_dSJvCMmQPN1Zjbpi_RcokyiOsss

一切順利,直到最后一次聲明。 當我嘗試打印結果的長度時,它是正確的長度。 但是,如果我嘗試使用打印輸出結果

Log.e ("ERROR", result);

和adb logcat查看輸出,它被截斷了。 因此,如果將截斷的字符串結果傳遞到JSONArray中,則肯定會崩潰。 它總是在“ Pyrmont Bay Wh”之后被截斷,它比返回值低4048個字符。 因此,請猜我的問題是為什么變量“結果”被截斷了。 謝謝

Logcat會截斷長字符串。

$ adb logcat -g
/dev/log/main: ring buffer is 64Kb (63Kb consumed), max entry is 5120b, max payload is 4076b

您可以做的一件事是按照此SO post的建議將字符串拆分為可打印的塊:

    int maxLogSize = 1000;
    for(int i = 0; i <= veryLongString.length() / maxLogSize; i++) {
        int start = i * maxLogSize;
        int end = (i+1) * maxLogSize;
        end = end > veryLongString.length() ? veryLongString.length() : end;
        Log.v(TAG, veryLongString.substring(start, end));
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM