我已經開始使用JSON更新我的應用程序中的列表。我以前做過這個沒有太多問題,並且很好地理解了JSON對象。當我在瀏覽器中連接到http://chuckfranklinlaw.com/wp-json/posts/511時,我得到JSON對象,因爲我期望看到它,但是當我嘗試通過我的Android應用程序連接到JSON時,出現json_missing_callback_param錯誤消息。請注意,這是我的早期代碼,UI線程上的網絡強制僅用於測試目的。json對象在瀏覽器中工作,但不在Android應用程序
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_events); //Was activity_postList
//This was working before atempted modifications
/*HTTPDownloadTask tester = new HTTPDownloadTask();
String params = "http://www.chuckfranklinlaw.com/events/feed/";
tester.execute(params);
this.generateDummyData();*/
JSONArray json = null;
String str = "";
HttpResponse response;
HttpClient myClient = new DefaultHttpClient();
HttpPost myConnection = new HttpPost("http://chuckfranklinlaw.com/wp-json/posts/511");
TextView testText = (TextView) findViewById(R.id.testView);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
try {
response = myClient.execute(myConnection);
str = EntityUtils.toString(response.getEntity(), "UTF-8");
testText.setText(str);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
str = str.replaceAll("\\<.*?>", "");
try {
json = new JSONArray(str);
} catch (JSONException e) {
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
}
}
我正在使用WP-JSON插件並遵循有關如何格式化URL的指導原則。它也適用於瀏覽器。
之前被創建的任何對象,我有我的日誌打印出字符串,我是從URL接收:
{"code":"json_missing_callback_param","message":"Missing parameter data"}
這裏是日誌,當我嘗試使用一個JSONObject,由於某種原因,它是通過我這個錯誤代碼而不是我的對象,這就是爲什麼我已經將它初始化爲一個數組。
05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err的:org.json.JSONException:值[{ 「代碼」: 「json_missing_callback_param」, 「消息」: 「Missing parameter data」}]類型org.json.JSONArray無法轉換爲JSONObject 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at org.json.JSON。 typeMismatch(JSON.java:111) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at org.json.JSONObject。(JSONObject.java:160) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at org.json.JSONObject。(JSONObject.java:173) 05-08 13:06:49.378 10989-10989/com.chuckfranklin .chuckfranklinl aw W/System.err:at com.chuckfranklin.chuckfranklinlaw.Events.onCreate(Events.java:99) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at android .app.Activity.performCreate(Activity.java:6288) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1119) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:在android.app.ActivityThread.access $ 900(Activity Thread.java:177) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1448) 05- 08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at android.os.Handler.dispatchMessage(Handler.java:102) 05-08 13:06:49.378 10989-10989/com .chuckfranklin.chuckfranklinlaw W/System.err:at android.os.Looper.loop(Looper.java:145) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at android.app.ActivityThread.main(ActivityThread.java:5942) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at java.lang.reflect.Method.invoke(Native方法) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at java.lang.refl ect.Method.invoke(Method.java:372) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1399) 05-08 13:06:49.378 10989-10989/com.chuckfranklin.chuckfranklinlaw W/System.err:at com.android.internal.os.ZygoteInit.main(ZygoteInit。java:1194)
您是否嘗試記錄您收到的內容? – njzk2
您試圖將其轉換爲JSON不是有效的陣列。它需要從一個括號開始。嘗試將其轉換爲JsonObject。我現在只使用像GSon或Jackson這樣的POJO基於對象的轉換框架。創建你的json結構的POJO,它會爲你轉換它。 –
@ njzk2是的,我收到{「code」:「json_missing_callback_param」,「message」:「缺少參數數據」} –