Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.json.JSONException:没有用于尝试解析json的值_Java_Android_Json - Fatal编程技术网

Java org.json.JSONException:没有用于尝试解析json的值

Java org.json.JSONException:没有用于尝试解析json的值,java,android,json,Java,Android,Json,大家好,我正在尝试解析一个json,但是文本永远不会显示!日志中写道: 06-24 23:28:22.681: W/System.err(6271): org.json.JSONException: No value for production_companies 06-24 23:28:22.681: W/System.err(6271): at org.json.JSONObject.get(JSONObject.java:355) 06-24 23:28:22.682: W/Sy

大家好,我正在尝试解析一个json,但是文本永远不会显示!日志中写道:

06-24 23:28:22.681: W/System.err(6271): org.json.JSONException: No value for production_companies
06-24 23:28:22.681: W/System.err(6271):     at org.json.JSONObject.get(JSONObject.java:355)
06-24 23:28:22.682: W/System.err(6271):     at org.json.JSONObject.getJSONObject(JSONObject.java:574)
06-24 23:28:22.682: W/System.err(6271):     at com.example.movieinfo.MainActivity$MyAsyncTask.doInBackground(MainActivity.java:126)
06-24 23:28:22.682: W/System.err(6271):     at com.example.movieinfo.MainActivity$MyAsyncTask.doInBackground(MainActivity.java:1)
06-24 23:28:22.683: W/System.err(6271):     at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-24 23:28:22.683: W/System.err(6271):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-24 23:28:22.683: W/System.err(6271):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-24 23:28:22.684: W/System.err(6271):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-24 23:28:22.684: W/System.err(6271):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-24 23:28:22.685: W/System.err(6271):     at java.lang.Thread.run(Thread.java:841)
我不知道为什么,这是我的代码:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
    getSupportActionBar().setCustomView(R.layout.actionbar);

    android.app.ActionBar bar = getActionBar();
    bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#3498db"))); 

    ImageView search = (ImageView) findViewById(R.id.search);
    box = (EditText) findViewById(R.id.editText1);
    search.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            url = "https://api.themoviedb.org/3/movie/" + box.getText().toString() + "?api_key=xxx";
            new MyAsyncTask().execute();
        }
    });

}

private class MyAsyncTask extends AsyncTask<String, String, String>{

    @Override
    protected String doInBackground(String... arg0) {

            //Creamos el cliente HTTP
            DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());

            //Pasamos por POST la url
            HttpPost htppost = new HttpPost(url);

            //Definimos que tipo de dato nos pasan
            htppost.setHeader("Content-type", "application/json");

            //Leer data del URL
            InputStream inputStream = null;

            String result = null;

            try{
                    //Pedir una respuesta de la pagina
                    HttpResponse response = httpclient.execute(htppost);
                    //Guarda todo el contenido
                    HttpEntity entity = response.getEntity();
                    //Obtenog el contenido
                    inputStream = entity.getContent();
                    //Lee todo el contenido
                    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
                    //Guarda todo ahi
                    StringBuilder theStringBuilder = new StringBuilder();

                    String line = null;
                    //Aca leemos todo
                    while((line = reader.readLine()) != null){
                            theStringBuilder .append(line + "\n");
                    }
                    //Pasamos todo a result
                    result = theStringBuilder.toString();

            }catch(Exception e){

                    e.printStackTrace();

            }finally{

                    try{
                            //Si se guardo algo cerramos el input stream
                            if(inputStream != null){
                                    inputStream.close();
                            }else{
                                    Log.e("No funciono", "Cerrar el inputStream");
                            }

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

            }

            JSONObject jsonObject;
            try{
                    // Hacemos que el resultado sea un JSONObject
                    jsonObject = new JSONObject(result);
                    // Buscamos el objeto query "Objeto"
                    JSONObject queryJSONOBject = jsonObject.getJSONObject("production_companies");
                    // Finalmente obtenemos los strings
                    titulo = jsonObject.getString("original_title");
                    descripcion = queryJSONOBject.getString("name");
                    imageUrl = jsonObject.getString("poster_path");

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


            return result;
    }

    @Override
    protected void onPostExecute(String result) {
            Toast.makeText(getApplicationContext(), titulo, Toast.LENGTH_SHORT).show();
            TextView line1 = (TextView) findViewById(R.id.titulo);
            TextView line2 = (TextView) findViewById(R.id.descr);
            line1.setText(titulo);
            line2.setText(descripcion);
    }

}
如果有人能告诉我出了什么问题,我将不胜感激


感谢advanced

production\u Companys
是一个
JSONArray
而不是
JSONObject
,因此解析器正确地告诉您,对于键
production\u Companys
production\u Companys
是一个
JSONArray
而不是
JSONObject
,因此,解析器正确地告诉您,对于键
生产公司
生产公司
没有
JSONObject
JSONArray
而不是
JSONObject
,因此,解析器正确地告诉您,对于键
生产公司
生产公司
没有
JSONObject
JSONArray
而不是
JSONObject
,因此,解析器正确地告诉您,对于关键的
生产公司
没有
JSONObject
,请尝试以下代码:-

    try
    {
        JSONObject jsonObject = new JSONObject(result);
        // Buscamos el objeto query "Objeto"
        JSONArray queryJSONOBject = jsonObject.getJSONArray("production_companies");
        // Finalmente obtenemos los strings
        String descripcion = "" ;//= new String[queryJSONOBject.length()];
        for (int i = 0; i < queryJSONOBject.length(); i++)
        {
            JSONObject j = queryJSONOBject.getJSONObject(i);
            descripcion = descripcion + j.getString("name")+ " / ";
        }
        String titulo = jsonObject.getString("original_title");
        String imageUrl = jsonObject.getString("poster_path");

        System.out.println(titulo);
        System.out.println(imageUrl);
        System.out.println(descripcion);
    }
    catch (Exception e)
    {
        // TODO: handle exception
    }
试试看
{
JSONObject JSONObject=新JSONObject(结果);
//Buscamos el objeto查询“objeto”
JSONArray queryJSONOBject=jsonObject.getJSONArray(“生产公司”);
//最终结果
String description=“;//=新字符串[queryJSONOBject.length()];
对于(int i=0;i
您的产品公司数据来自json数组,您将产品公司数据视为json对象。

请尝试以下代码:-

    try
    {
        JSONObject jsonObject = new JSONObject(result);
        // Buscamos el objeto query "Objeto"
        JSONArray queryJSONOBject = jsonObject.getJSONArray("production_companies");
        // Finalmente obtenemos los strings
        String descripcion = "" ;//= new String[queryJSONOBject.length()];
        for (int i = 0; i < queryJSONOBject.length(); i++)
        {
            JSONObject j = queryJSONOBject.getJSONObject(i);
            descripcion = descripcion + j.getString("name")+ " / ";
        }
        String titulo = jsonObject.getString("original_title");
        String imageUrl = jsonObject.getString("poster_path");

        System.out.println(titulo);
        System.out.println(imageUrl);
        System.out.println(descripcion);
    }
    catch (Exception e)
    {
        // TODO: handle exception
    }
试试看
{
JSONObject JSONObject=新JSONObject(结果);
//Buscamos el objeto查询“objeto”
JSONArray queryJSONOBject=jsonObject.getJSONArray(“生产公司”);
//最终结果
String description=“;//=新字符串[queryJSONOBject.length()];
对于(int i=0;i
您的产品公司数据来自json数组,您将产品公司数据视为json对象。

请尝试以下代码:-

    try
    {
        JSONObject jsonObject = new JSONObject(result);
        // Buscamos el objeto query "Objeto"
        JSONArray queryJSONOBject = jsonObject.getJSONArray("production_companies");
        // Finalmente obtenemos los strings
        String descripcion = "" ;//= new String[queryJSONOBject.length()];
        for (int i = 0; i < queryJSONOBject.length(); i++)
        {
            JSONObject j = queryJSONOBject.getJSONObject(i);
            descripcion = descripcion + j.getString("name")+ " / ";
        }
        String titulo = jsonObject.getString("original_title");
        String imageUrl = jsonObject.getString("poster_path");

        System.out.println(titulo);
        System.out.println(imageUrl);
        System.out.println(descripcion);
    }
    catch (Exception e)
    {
        // TODO: handle exception
    }
试试看
{
JSONObject JSONObject=新JSONObject(结果);
//Buscamos el objeto查询“objeto”
JSONArray queryJSONOBject=jsonObject.getJSONArray(“生产公司”);
//最终结果
String description=“;//=新字符串[queryJSONOBject.length()];
对于(int i=0;i
您的产品公司数据来自json数组,您将产品公司数据视为json对象。

请尝试以下代码:-

    try
    {
        JSONObject jsonObject = new JSONObject(result);
        // Buscamos el objeto query "Objeto"
        JSONArray queryJSONOBject = jsonObject.getJSONArray("production_companies");
        // Finalmente obtenemos los strings
        String descripcion = "" ;//= new String[queryJSONOBject.length()];
        for (int i = 0; i < queryJSONOBject.length(); i++)
        {
            JSONObject j = queryJSONOBject.getJSONObject(i);
            descripcion = descripcion + j.getString("name")+ " / ";
        }
        String titulo = jsonObject.getString("original_title");
        String imageUrl = jsonObject.getString("poster_path");

        System.out.println(titulo);
        System.out.println(imageUrl);
        System.out.println(descripcion);
    }
    catch (Exception e)
    {
        // TODO: handle exception
    }
试试看
{
JSONObject JSONObject=新JSONObject(结果);
//Buscamos el objeto查询“objeto”
JSONArray queryJSONOBject=jsonObject.getJSONArray(“生产公司”);
//最终结果
String description=“;//=新字符串[queryJSONOBject.length()];
对于(int i=0;i

问题是,您的产品公司数据来自json数组,您将产品公司数据视为json对象。

一旦收到inputstream,然后将其转换为字符串。转换字符串后,请检查是否存在任何jason标记为字符串。如果存在,则解析json数据。

收到inputstream后,将其转换为字符串。转换字符串后,请检查是否存在任何jason标记为字符串。如果存在,则解析json数据。

收到inputstream后,将其转换为字符串。转换字符串后,请检查是否存在任何jason标记为字符串。如果存在,则解析json数据。

收到inputstream后,将其转换为字符串。转换字符串后,请检查是否存在任何jason标记为字符串。如果存在,则解析json数据。

json解析器找不到密钥“production\u Companys”的有效对象,您确定它存在吗