2014-03-06 31 views
-2

我不知道該怎麼稱呼android的這個JSON數組...我曾嘗試以下陣列類型的主叫,但沒有奏效, 建議PLZAndroid如何調用這個json數組... ...?

["a","b","c","d"] 

我的Java

JSONArray arrays = null; 
JSONObject object = null; 
// TODO Auto-generated method stub 
super.onPostExecute(result); 
String jsonResult=result; 
try 
{ 
object = new JSONObject(jsonResult); 
} 
catch (JSONException e) 
{ 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
arrays = new JSONArray(result); 
object=arrays.getJSONObject(0); 
textView.setText(object[0]+""object[1])); 

logcat的

03-06 09:06:40.272: E/AndroidRuntime(5545): FATAL EXCEPTION: main 
03-06 09:06:40.272: E/AndroidRuntime(5545): Process: com.example.loading_mysql, PID: 5545 
03-06 09:06:40.272: E/AndroidRuntime(5545): java.lang.NullPointerException 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at com.example.loading_mysql.MainActivity$JSONParser.onPostExecute(MainActivity.java:100) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at com.example.loading_mysql.MainActivity$JSONParser.onPostExecute(MainActivity.java:1) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at android.os.AsyncTask.finish(AsyncTask.java:632) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at android.os.AsyncTask.access$600(AsyncTask.java:177) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at android.os.Handler.dispatchMessage(Handler.java:102) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at android.os.Looper.loop(Looper.java:137) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at android.app.ActivityThread.main(ActivityThread.java:4998) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at java.lang.reflect.Method.invoke(Method.java:515) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
03-06 09:06:40.272: E/AndroidRuntime(5545):  at dalvik.system.NativeStart.main(Native Method) 

我的postexecute ,,,添加代碼後說,,,,不工作stilllkgjkgkgv gdsghsadgsg

protected void onPostExecute(String result) { 
      String value = null; 
      JSONArray jr = null; 
      try { 
       jr = new JSONArray(result); 
      } catch (JSONException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 

       try { 
        value =jr.getString(0); 
       } catch (JSONException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

      textView.setText(value); 
      } 
+1

「我曾嘗試以下陣列類型的主叫但它的工作」如果一切正常,你想要什麼建議 – Raghunandan

+0

遺憾沒有工作 –

+1

有沒有JSON對象在你的代碼中 – Raghunandan

回答

4

你有什麼是JSONArray。在下面的json中沒有JSONObject

[ 
    "a", 
    "b", 
    "c", 
    "d" 
] 

爲了解析

JSONArray jr = new JSONArray(jsonResult); 
for(int i=0;i<jr.length();i++) 
{ 
    String value = (String) jr.get(i); 
} 

[表示JSON數組節點

{表示JSON對象節點

爲了澄清的問題在您的評論

{ 
    "name": "Froyo", 
    "version": "Android 2.2" 
} 

以上是JSON對象

編輯:

@Override 
protected void onPostExecute(String result) 
    { 
     super.onPostExecute(result); 
     String value = null; 
     try { 
      JSONArray jr = new JSONArray(result); 
      value =(String) jr.get(0); 
      textView.setText(value) 
      } catch (JSONException e1) 
      { 
      e1.printStackTrace(); 
      } 
    } 
+0

你現在明白,,, –

+0

@ArunShankar如果這個答案有幫助,你應該把這個標記爲答案,以幫助其他人有同樣的問題 –

+0

它仍然會拋出錯誤 protected void onPostExecute(String result){ \t \t String value = null; \t \t JSONArray jr = null; \t \t \t嘗試{ \t \t \t \t JR =新JSONArray(結果); \t \t \t}趕上(JSONException E1){ \t \t \t \t // TODO自動生成的catch程序塊 \t \t \t \t e1.printStackTrace(); \t \t \t} \t \t \t \t嘗試{ \t \t \t \t \t值= jr.getString(0); \t \t \t \t}趕上(JSONException E){ \t \t \t \t \t // TODO自動生成的catch程序塊 \t \t \t \t \t e.printStackTrace(); \t \t \t \t} \t \t \t \t textView.setText(值); –