为了账号安全,请及时绑定邮箱和手机立即绑定

在 json Android Studio 中获取数据的问题

在 json Android Studio 中获取数据的问题

BIG阳 2021-09-15 10:51:41
我是 Android Studio 的新手,我想使用来自 omdb.com 的 API 获取一些数据,这是我的操作方法:我创建了一个类:package com.example.emad.apidemo;import android.os.AsyncTask;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;public class fetchData extends AsyncTask<Void,Void,Void> {public String data = "";public String Title ="";@Overrideprotected Void doInBackground(Void... voids) {    try {        URL url = new URL("http://www.omdbapi.com/?t=the+generation&apikey=42ae84fb");        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();        InputStream inputStream = httpURLConnection.getInputStream();        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));        String line = "";        while(line != null){            line = bufferedReader.readLine();            data = data + line;        }        JSONArray JA = new JSONArray(data);        JSONObject JO = JA.getJSONObject(0);        Title = JO.getString("Title");    } catch (MalformedURLException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    } catch (JSONException e) {        e.printStackTrace();    }    return null;}@Overrideprotected void onPostExecute(Void aVoid) {    super.onPostExecute(aVoid);    MainActivity.txtResponse.setText(this.Title);}}我想Title从以下 JSON 中获取值:{"Title": "The Generation Game","Year": "1971–2001",}这是我的 mainActivity 代码:public void btnFetchData_CLick(View v){    fetchData process = new fetchData();    process.execute();}当我点击按钮时,没有任何反应!为什么我无法访问任何值?
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

你的 JSON 是一个 JsonObject 而不是 JsonArray,所以你应该这样做:


JSONObject JO = new JSONObject(data);

然后,如果您想获得标题,请执行以下操作:


title = JO.getString("Title");


您拥有的唯一 JSONArray 是这个:


"Ratings": [{

        "Source": "Internet Movie Database",

        "Value": "6.6/10"

    }],


查看完整回答
反对 回复 2021-09-15
  • 1 回答
  • 0 关注
  • 235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信