Java 在json Android Studio中获取数据时出现问题
我是Android Studio的新手,我想使用omdb.com上的API获取一些数据,我是这样做的: 我创建了一个类:Java 在json Android Studio中获取数据时出现问题,java,android,json,android-studio,Java,Android,Json,Android Studio,我是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
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 ="";
@Override
protected 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;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
MainActivity.txtResponse.setText(this.Title);
}
}
这是我的主要活动代码:
public void btnFetchData_CLick(View v){
fetchData process = new fetchData();
process.execute();
}
当我点击按钮时,什么也没发生
为什么我不能访问任何值?您的JSON是JsonObject而不是JsonArray,因此您应该这样做:
JSONObject JO = new JSONObject(data);
然后,如果你想获得标题,请执行以下操作:
JSONObject JO = new JSONObject(data);
title=JO.getString(“title”)
您唯一拥有的JSONArray是:
"Ratings": [{
"Source": "Internet Movie Database",
"Value": "6.6/10"
}],
如果你打印LN(数据),你能得到你想要的吗?另外,我没有从该URL返回数组。我得到一个物体。也许可以尝试新的JSONObject(数据)并尝试从中读取标题。也可以在循环时检查您,第一次读取应该是退出循环,然后在关闭它之前重复。如果第一次读取返回null,您的数据将包含一个“null”字!非常感谢不客气:)请随意将此标记为正确的^^我会的,我应该等2分钟。。。