現在我可以通過網絡將JSON字符串發送到我的Android應用程序。唯一的情況是目前消息長度不超過幾百個字符。這將很快擴展到每個JSON字符串數千個字符。如何確保在將它發送到解析器(否則會崩潰)之前收到整個JSON字符串?讓JSON字符串跨越多個Socket接收()
例如,我如何在一個線程接收數據的基本途徑:
while (true)
{
try
{
// Read from the DataInputStream
bytes = mmDataIn.read(buffer); //buffer is a 4096 size byte[]
Log.d("JSON", "dataread: " + String.valueOf(bytes)); //only prints stuff > 0
parseJSON(buffer); //will not work unless full JSON
}
catch (IOException e)
{
Log.e("JSON", "disconnected", e);
break;
}
}
我打算用一個StringBuilder拼湊JSON字符串,但我不知道該怎麼告訴何時完成。
我讀這樣的:How to identify end of InputStream in java
但是,什麼是做它一個JSON字符串的最好方法?我認爲這很常見,並且有一個處理它的標準方法。謝謝。
當然還有一個JSON解析器的API獲取InputStream參數? – EJP 2012-08-06 23:35:02