1
我得到以下錯誤:org.json.JSONException:值試驗(java.lang.String類型不能轉換到的JSONObject
org.json.JSONException: Value test(of type java.lang.String cannot be converted to JSONObject
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: org.json.JSONException: Value test(of type java.lang.String cannot be converted to JSONObject
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at org.json.JSON.typeMismatch(JSON.java:111)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at org.json.JSONObject.<init>(JSONObject.java:160)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at org.json.JSONObject.<init>(JSONObject.java:173)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at com.adeel.android.flightdemo.FlightDataModel.onPostExecute(FlightDataModel.java:86)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at com.adeel.android.flightdemo.FlightDataModel.onPostExecute(FlightDataModel.java:21)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at android.os.AsyncTask.finish(AsyncTask.java:632)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at android.os.AsyncTask.access$600(AsyncTask.java:177)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at android.os.Looper.loop(Looper.java:145)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5832)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at java.lang.reflect.Method.invoke(Native Method)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at java.lang.reflect.Method.invoke(Method.java:372)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
07-18 18:58:11.424 25827-25827/com.adeel.android.flightdemo W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
其中我正在此錯誤的行是:
JSONObject object = new JSONObject(result);
這裏是我的代碼:
import android.os.AsyncTask;
import android.util.Log;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class FlightDataModel extends AsyncTask<String, Void, String>{
private String data = "https://api.themoviedb.org/3/movie/550?api_key=f1d314280284e94ff7d1feeed7d44fdf&callback=test";
URL mURL;
HttpURLConnection mHttpURLConnection;
String result = "" ;
String main;
JSONArray mArray = null;
private String mImageIcon;
private String movieTitle;
private String movieDesc;
private String movieRating;
@Override
protected String doInBackground(String... strings) {
try {
Log.d("FlightDemo", "doInBackground method called");
mURL = new URL(data);
mHttpURLConnection = (HttpURLConnection)mURL.openConnection();
mHttpURLConnection.connect();
InputStream inputStream = mHttpURLConnection.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
int data = inputStreamReader.read();
while (data != -1){
char current = (char) data;
result += current;
data = inputStreamReader.read();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(String s) {
//What to do when the doInBackground Method is executed..
try {
//JSONObject json = new JSONObject(result);
JSONObject object = new JSONObject(result);
// JSONArray array = new JSONArray(result);
Log.d("FlightDemo", object.toString());
} catch (JSONException e) {
e.printStackTrace();
}
super.onPostExecute(s);
}
public String getImageIcon() {
return mImageIcon;
}
public String getMovieTitle() {
return movieTitle;
}
public String getMovieDesc() {
return movieDesc;
}
public String getMovieRating() {
return movieRating;
}
public String getData() {
return data;
}
}
我一直在這個代碼幾天..我在雄初學者ID應用程序開發。所以,任何幫助非常感謝。
很多謝謝
你能檢查一下你的字符串是否是新的JSONObject格式(「{你的字符串}」)。在https://stackoverflow.com/questions/10267910/jsonexception-value-of-type-java-lang-string-cannot-be-converted-to-jsonobject之前詢問過同樣的問題 – user8271644
看起來你是新來的。歡迎!如果您不顯示您嘗試過的內容,並且將您呈現的代碼降低到仍然顯示該問題的最小數量,則人們不願意提供幫助。 –