簡體   English   中英

org.json.JSONException:類型為java.lang.String的值test(無法轉換為JSONObject

[英]org.json.JSONException: Value test( of type java.lang.String cannot be converted to 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;
}
 }

我已經在這段代碼上工作了幾天。.我是android應用程序開發的初學者。 因此,非常感謝您的幫助。

非常感謝

json字符串中可能有一些特殊/不可見的字符。 您可以在轉換為JSONObject之前打印結果字符串,或在某些編輯器中將其打開以顯示隱藏的字符並查看json是否正確。 您也可以對輸入流使用UTF 8標准。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM