我是Android Studio的新手,我正在尝试使我的简单应用程序从URL获取JSON数据,即使用Android Studio中的Volley从服务器获取JSON数据。当我在设备上调试时,它可以正常工作,但不显示任何数据,并且我肯定有问题

我的代码:

package imo.meteoiraq;

import android.app.DownloadManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

public class MainActivity extends AppCompatActivity {
RequestQueue rq;
TextView nameText,descriptionText,fbUrlText,youtubeUrlTxt;
    int humidity;
    int wind_speed;
    int temperature;
    String url="/stationlookupstation=I1410&units=metric&v=2.0&format=json";
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        rq= Volley.newRequestQueue(this);

        nameText= (TextView) findViewById(R.id.tempText);
        descriptionText = (TextView) findViewById(R.id.wind_speed);
        fbUrlText = (TextView) findViewById(R.id.humidity);
        sendjsonrequest();
    }
public void  sendjsonrequest(){
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            try {
                temperature = response.getInt("temperature");
                wind_speed= response.getInt("wind_speed");
                humidity= response.getInt("type");

                nameText.setText(temperature);
                descriptionText.setText(humidity);

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });
    rq.add(jsonObjectRequest);
}
}


我的数据json:

{
  "stations": {
    "I1410": {
      "updated": 1499668936,
      "ageh": 0,
      "agem": 0,
      "ages": 58,
      "type": "PWS",
      "wind_dir_degrees": 315,
      "wind_speed": 6.1,
      "wind_gust_speed": 11.1,
      "humidity": 10,
      "temperature": 40.5,
      "precip_rate": null,
      "precip_today": 0,
      "pressure": 1002.26,
      "dewpoint": null,
      "windchill": null
    }
  }
}

最佳答案

首先获取JsonObject工作站和I1410,然后使用ages = I1410JO.getInt(“ ages”);

JSONObject stationsJO = response.getJSONObject("stations");
JSONObject I1410JO = stationsJO.getJSONObject("I1410");
int ages = I1410JO.getInt("ages");

08-18 18:37
查看更多