2012-11-08 32 views
-1

我想從這個JSON網址中檢索數據,但是出現錯誤。我放在最後我有這個代碼的另一個JSON完美的工作,但在這裏這不是工作,那麼這是什麼問題,以及如何解決?從URL檢索json數組給出錯誤的android?

http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=restaurant&rsz=8&sll=-27.5595451,-48.6206452&radius=1000&output=json

JsonParserSearch.java

public class JsonParserSearch 
{ 
static InputStream is = null; 
static JSONObject jObj = null; 
static String json = ""; 

// constructor 
public JsonParserSearch() { 

} 

public JSONObject getJSONFromUrl(String url) { 

    // Making HTTP request 
    try { 
     // defaultHttpClient 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent();   

    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     json = sb.toString(); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error converting result " + e.toString()); 
    } 

    // try parse the string to a JSON object 
    try { 
     jObj = new JSONObject(json); 
    } catch (JSONException e) { 
     Log.e("JSON Parser finaal", "Error parsing data " + e.toString()); 
    } 

    // return JSON String 
    return jObj; 

} 

}

SearchListActivity.java

公共類SearchlistActivity延伸活動{

private static String url="http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=restaurant&rsz=8&sll=-27.5595451,-48.6206452&radius=1000&output=json"; 
private static final String TAG_RESULTS = "results"; 
private static final String TAG_RESPONSEDATA="responseData";  

@Override 
public void onCreate(Bundle savedInstanceState) 

{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    //JSONArray results = null;  
    JSONArray responseData=null; 
// Hashmap for ListView 
    ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>(); 

    // Creating JSON Parser instance 
    JsonParserSearch jParser = new JsonParserSearch(); 


    // getting JSON string from URL 
    JSONObject json = jParser.getJSONFromUrl(url); 

    try { 
     // Getting Array of Contacts 

     responseData = json.getJSONArray(TAG_RESPONSEDATA); 
     Log.e("jsonnn data","sfsssss00000-------->"+responseData); 

     } 
    catch (JSONException e) { 
     e.printStackTrace(); 
    } 

} 

}

11-09 01:18:14.241: E/Buffer Error(275): Error converting result java.lang.NullPointerException 
11-09 01:18:14.241: E/JSON Parser finaal(275): Error parsing data org.json.JSONException: End of input at character 0 of 
11-09 01:18:14.251: D/AndroidRuntime(275): Shutting down VM 
11-09 01:18:14.251: W/dalvikvm(275): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
11-09 01:18:14.261: E/AndroidRuntime(275): FATAL EXCEPTION: main 
11-09 01:18:14.261: E/AndroidRuntime(275): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ssss/com.example.ssss.SearchlistActivity}: java.lang.NullPointerException 
11-09 01:18:14.261: E/AndroidRuntime(275): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
11-09 01:18:14.261: E/AndroidRuntime(275): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
11-09 01:18:14.261: E/AndroidRuntime(275): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
11-09 01:18:14.261: E/AndroidRuntime(275): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
11-09 01:18:14.261: E/AndroidRuntime(275): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-09 01:18:14.261: E/AndroidRuntime(275): at android.os.Looper.loop(Looper.java:123) 
11-09 01:18:14.261: E/AndroidRuntime(275): at android.app.ActivityThread.main(ActivityThread.java:4627) 
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348) 
11-09 00:45:17.072: W/System.err(302): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
11-09 00:45:17.072: W/System.err(302): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
11-09 00:45:17.072: W/System.err(302): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
11-09 00:45:17.072: W/System.err(302): at com.example.sss.JsonParserSearch.getJSONFromUrl(JsonParserSearch.java:38) 
11-09 00:45:17.072: W/System.err(302): at com.example.sss.SearchlistActivity.onCreate(SearchlistActivity.java:39) 
11-09 00:45:17.072: W/System.err(302): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
11-09 00:45:17.082: W/System.err(302): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
11-09 00:45:17.082: W/System.err(302): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
11-09 00:45:17.082: W/System.err(302): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
11-09 00:45:17.082: W/System.err(302): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
11-09 00:45:17.082: W/System.err(302): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-09 00:45:17.082: W/System.err(302): at android.os.Looper.loop(Looper.java:123) 
11-09 00:45:17.082: W/System.err(302): at android.app.ActivityThread.main(ActivityThread.java:4627) 
11-09 00:45:17.082: W/System.err(302): at java.lang.reflect.Method.invokeNative(Native Method) 
11-09 00:45:17.082: W/System.err(302): at java.lang.reflect.Method.invoke(Method.java:521) 
11-09 00:45:17.092: W/System.err(302): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
11-09 00:45:17.092: W/System.err(302): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
11-09 00:45:17.092: W/System.err(302): at dalvik.system.NativeStart.main(Native Method) 
11-09 00:45:17.092: E/Buffer Error(302): Error converting result java.lang.NullPointerException 
11-09 00:45:17.092: E/JSON Parser finaal(302): Error parsing data org.json.JSONException: End of input at character 0 of 
11-09 00:45:17.103: D/AndroidRuntime(302): Shutting down VM 
11-09 00:45:17.103: W/dalvikvm(302): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
11-09 00:45:17.112: E/AndroidRuntime(302): FATAL EXCEPTION: main 
11-09 00:45:17.112: E/AndroidRuntime(302): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sss/com.example.sss.SearchlistActivity}: java.lang.NullPointerException 
11-09 00:45:17.112: E/AndroidRuntime(302): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
11-09 00:45:17.112: E/AndroidRuntime(302): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
11-09 00:45:17.112: E/AndroidRuntime(302): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
11-09 00:45:17.112: E/AndroidRuntime(302): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
11-09 00:45:17.112: E/AndroidRuntime(302): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-09 00:45:17.112: E/AndroidRuntime(302): at android.os.Looper.loop(Looper.java:123) 
11-09 00:45:17.112: E/AndroidRuntime(302): at android.app.ActivityThread.main(ActivityThread.java:4627) 
11-09 00:45:17.112: E/AndroidRuntime(302): at java.lang.reflect.Method.invokeNative(Native Method) 
11-09 00:45:17.112: E/AndroidRuntime(302): at java.lang.reflect.Method.invoke(Method.java:521) 
11-09 00:45:17.112: E/AndroidRuntime(302): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
11-09 00:45:17.112: E/AndroidRuntime(302): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
11-09 00:45:17.112: E/AndroidRuntime(302): at dalvik.system.NativeStart.main(Native Method) 
11-09 00:45:17.112: E/AndroidRuntime(302): Caused by: java.lang.NullPointerException 
11-09 00:45:17.112: E/AndroidRuntime(302): at com.example.sss.SearchlistActivity.onCreate(SearchlistActivity.java:44) 
11-09 00:45:17.112: E/AndroidRuntime(302): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
11-09 00:45:17.112: E/AndroidRuntime(302): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
11-09 00:45:17.112: E/AndroidRuntime(302): ... 11 more 
+0

SearchlistActivity.java的第44行。空指針異常。另外無論你分析的JSON似乎都是無效的。 – kcoppock

回答

0

它看起來像你的手機/仿真器是無法解析ajax.googleapis.com主機名。 (java.net.UnknownHostException)。我建議你檢查你的手機/模擬器與互聯網的連接性(例如:把提到的URL放在手機瀏覽器窗口中,並檢查它是否工作)。