所以我谷歌搜索,並找到類似我需要的例子。我已經調整和調整了並解決了我的大部分問題,但已經被我似乎無法通過的這個問題所困惑。一些Backround:所以我正在構建一個應用程序,通過PHP生成一個JSON對象來查詢MySQL數據庫。我可以在SDK的Web瀏覽器中看到「[爲什麼是天藍色」}],因此我知道我可以訪問該對象。權限也在我的清單中正確設置。問題出現在我嘗試將對象解析爲字符串時。我從我的日誌貓中得到「錯誤轉換結果java.lang.NullPointerException」。JSON解析錯誤(沒有HTTP錯誤,只是字符串轉換)
現在,我已經試過
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String json = reader.readLine();
JSONTokener tokener = new JSONTokener(json);
JSONArray finalResult = new JSONArray(tokener);
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
我也試過
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
我想我會後我的HTTP(甚至在自己的線程最佳實踐耶 - !後來我使用全局變量(捂臉))
new Thread() {
public void run() {
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.1.55/qgrap.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
}
}.start();
在HTTP第二代碼集,你需要做一些獲取內容的東西無論哪種方式我想專注於第一個代碼集。這裏的迴應是一個全局變量。當它傳入BufferReader參數時會被操作。我沒有錯誤的點字符串json = reader.readLine();我應該可以以字符串的形式訪問數據。無論哪種方式日誌說不行,我不知道爲什麼。另外我不能只是在PHP端創建一個字符串,而不是使用JSON?
BOUNTY:千個因特網和
真棒謝謝。我很確定那就是我要找的。今天我有很多功課,所以在測試之前我會有一段時間。如果它確實有效,但我可能不會將此標記爲答案。可以說,我的應用程序起飛(這看起來不錯)這將使服務器端更多的工作,並依賴於我的服務器的規格,以及許多人如何挑選這個東西(它的免費),可能是很多開銷。所以我想稍後再開放一下。但是,再次感謝你。 – 2012-02-01 18:06:31
所以我很笨Gson不是服務器端我只是簡要回顧了文檔。所以給我一下,因爲我正在處理我的代碼。我想你明白了。 – 2012-02-01 23:46:57