android jsonObject空指针异常

时间:2016-10-27 17:24:11

标签: android nullpointerexception jsonobject

我是JSON的新手。我需要帮助。我的android工作室一直告诉我,我的jsonobject是NULL。我可以解析并将我的jsonarray显示到列表视图中。但当我点击我显示它的页面时,我的应用程序崩溃。

分析器

class BgTask extends AsyncTask<Void, Void, String> {
    String json_url;

    @Override
    protected void onPreExecute() {
        json_url = "http://10.0.2.2/result/hehe.php";
    }

    @Override
    protected String doInBackground(Void... params) {
        try {
            URL url = new URL(json_url);
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            InputStream inputstream = httpURLConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputstream));
            StringBuilder stringBuilder = new StringBuilder();
            while ((JSON_STRING = bufferedReader.readLine()) != null) {
                stringBuilder.append(JSON_STRING + "\n");
            }

            bufferedReader.close();
            inputstream.close();
            httpURLConnection.disconnect();
            return stringBuilder.toString().trim();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }

    @Override
    protected void onPostExecute(String result) {
        json_string = result;
    }
}

public void publishGame(View view)
{
    if(json_string == null)
    {
        Toast.makeText(getApplicationContext(), "Get Data First",Toast.LENGTH_SHORT).show();
    }
    else
    {
        Intent intent = new Intent(this, Games.class);
        intent.putExtra("json_data", json_string);
        startActivity(intent);
    }
}

} 发布的代码

Bundle intent=getIntent().getExtras();
    if(intent !=null) {
        json_string = intent.getString("json_data");

        json_string = getIntent().getExtras().getString("json_data");
    }

 try {
            jsonObject = new JSONObject(json_string);
            jsonArray = jsonObject.getJSONArray("server_response");
            int count = 0;
            String team1, score1, team2, score2, Type;

            while (count < jsonArray.length()) {
                JSONObject JO = jsonArray.getJSONObject(count);
                team1 = JO.getString("team1");
                score1 = JO.getString("score1");
                team2 = JO.getString("team2");
                score2 = JO.getString("score2");
                Type = JO.getString("Type");
                Downloader downloader = new Downloader(team1, score1, team2, score2, Type);
                gamesAdapter.add(downloader);

                count++;
            }


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

}

错误指向在这里试试{ jsonObject = new JSONObject(json_string);

1 个答案:

答案 0 :(得分:1)

错误是因为您尝试将"json_data"解析为JSONObject,这不是有效的json。也许你正在variable中调用json_data的服务器响应,如果是String,那么你需要传递variable而不是将String literal传递给JSONObject { {1}}。