从Json url中获取字符串

问题描述 投票:1回答:1

我有这个url json链接。http:/api.aladhan.comtimingsByAddress06-06-2020?address=Jeddah,SaudiArabia&method=1。

我想从中获取一些字符串,我看到了一些教程,并尝试着去做,但它总是显示空屏幕,没有任何错误的logcat。

我不知道是代码的问题还是url的问题。

这是我的代码。

public class MainActivity extends Activity {

RequestQueue req;
TextView fajerText,aserText,maghrebText;
String fajer,aser,maghreb;
String url="http://api.aladhan.com/timingsByAddress/06-06-2020?address=Jeddah,SaudiArabia&method=8";


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

    req= Volley.newRequestQueue(this);

    fajerText=(TextView) findViewById(R.id.tv_fajr);
    aserText=(TextView) findViewById(R.id.tv_aser);
    maghrebText=(TextView) findViewById(R.id.tv_maghreb);

    sendjsonrequest();

}

public void sendjsonrequest(){

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

            try {
                fajer = response.getString("code");
                aser = response.getString("status");
                maghreb = response.getString("data");

                fajerText.setText(fajer);
                aserText.setText(aser);
                maghrebText.setText(maghreb);


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

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });
    req.add(jsonObjectRequest);
}
android json url fetch
1个回答
0
投票
 "data": {
    "timings": {
      "Fajr": "04:15",
      "Sunrise": "05:40",
      "Dhuhr": "12:22",
      "Asr": "15:40",
      "Sunset": "19:04",
      "Maghrib": "19:04",
      "Isha": "20:29",
      "Imsak": "04:05",
      "Midnight": "00:22"
    }

 maghreb = response.getString("data");

您的 dataJSONObject. 你应该使用 getJSONObject() 而不是 getString().

getJSONObject(String name). 如果存在JSONObject并且是JSONObject,则返回通过名称映射的值,否则将抛出。

 JSONObject data      = response.getJSONObject("data");
 JSONObject timings   = data.getJSONObject("timings");
 String     fair      = timings.getString("Fajr");
© www.soinside.com 2019 - 2024. All rights reserved.