【问题标题】:How do i get data from null JSONObject?如何从 null JSONObject 获取数据?
【发布时间】:2018-02-18 00:43:12
【问题描述】:

这是我在 StackOverflow 上的第一个问题,很抱歉问题表述不当。

这是 logcat 中的 Json:

I/Result is: null{"coord":{"lon":-0.13,"lat":51.51},"weather":[{"id":300,"main":"Drizzle","description":"light intensity drizzle","icon":"09d"}],"base":"stations","main":{"temp":280.32,"pressure":1012,"humidity":81,"temp_min":279.15,"temp_max":281.15},"visibility":10000,"wind":{"speed":4.1,"deg":80},"clouds":{"all":90},"dt":1485789600,"sys":{"type":1,"id":5091,"message":0.0103,"country":"GB","sunrise":1485762037,"sunset":1485794875},"id":2643743,"name":"London","cod":200}

这是我的代码:

public class MainActivity extends AppCompatActivity {
    String weather,id,result;

    public class DownloadTask extends AsyncTask<String,Void,String>{

        @Override
        protected String doInBackground(String... urls) {
            try {
                URL url = new URL(urls[0]);
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                InputStream inputStream = httpURLConnection.getInputStream();
                InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
                int data = inputStreamReader.read();

                while(data != -1){
                    char count = (char) data;
                    result += count;
                    data = inputStreamReader.read();
                }

                return result;

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

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);

           try {
                JSONObject jsonObject = new JSONObject(result);

                 String res = jsonObject.getString("coord");

                Log.i("Result is ",res);
            } catch (JSONException e) {
                e.printStackTrace();
           }


        }
    }

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

       // Toast.makeText(this, id, Toast.LENGTH_SHORT).show();

        DownloadTask task = new DownloadTask();
        task.execute("http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b1b15e88fa797225412429c1c50c122a1");

    }
}

这里是例外:

W/System.err: org.json.JSONException: Value null of type org.json.JSONObject$1 无法转换为 JSONObject

【问题讨论】:

  • 无法理解标题如何从 null JSONObject 获取数据?
  • 由于null,您的 JSON 无效。

标签: java android json exception-handling


【解决方案1】:

初始化你的结果字符串为空

String result="";

您的结果字符串是类变量,默认情况下所有字符串都使用 =null 值进行初始化

下一行添加到null+yourResponse

 result += count;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 2019-08-13
    相关资源
    最近更新 更多