Java 应用程序正在运行,但未从json获取数据
我正在学习json,但没有得到解决方案 我尝试过更新我的json文件和xml文件,但没有成功 这是密码 我在代码中遇到的错误已经写出来了 下面 请帮我渡过难关 应用程序运行正常,但无法从下面的链接获取数据Java 应用程序正在运行,但未从json获取数据,java,android,json,Java,Android,Json,我正在学习json,但没有得到解决方案 我尝试过更新我的json文件和xml文件,但没有成功 这是密码 我在代码中遇到的错误已经写出来了 下面 请帮我渡过难关 应用程序运行正常,但无法从下面的链接获取数据 package com.taxsmart.jsonsimpleexample; 导入android.os.AsyncTask; 导入com.taxsmart.jsonsimpleexample.main活动; 导入org.json.JSONArray; 导入org.json.JSONExce
package com.taxsmart.jsonsimpleexample;
导入android.os.AsyncTask;
导入com.taxsmart.jsonsimpleexample.main活动;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.MalformedURLException;
导入java.net.URL;
公共类fetchData扩展异步任务{
字符串数据=”;
字符串dataParsed=“”;
字符串singleParsed=“”;
@凌驾
受保护的空位背景(空位…空位){
试一试{
URL=新URL(“https://api.myjson.com/bins/1hkm17");
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
InputStream InputStream=httpURLConnection.getInputStream();
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(inputStream));
字符串行=”;
while(行!=null){
line=bufferedReader.readLine();
数据=数据+行;
}
JSONArray JA=新JSONArray(数据);
对于(int i=0;i>
I/System.out:[OkHttp]sendRequest最后我解决了我的错误,我在json文件上写了错误的代码,因此没有加载代码请阅读“如何创建”。然后使用链接改进您的问题(不要通过评论添加更多信息)。否则,我们无法回答您的问题并为您提供帮助。您可能希望在data=data+line;
中添加一个换行符,您可以在创建后通过打印数据
值来确认这一点。
package com.taxsmart.jsonsimpleexample;
import android.os.AsyncTask;
import com.taxsmart.jsonsimpleexample.MainActivity;
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> {
String data ="";
String dataParsed = "";
String singleParsed ="";
@Override
protected Void doInBackground(Void... voids) {
try {
URL url = new URL("https://api.myjson.com/bins/1hkm17");
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);
for(int i =0 ;i <JA.length(); i++){
JSONObject JO = (JSONObject) JA.get(i);
singleParsed = "Name" + JO.get("name") + "\n"+
"Password" + JO.get("Password") + "\n"+
"Contact" + JO.get("Contact") + "\n"+
"Country" + JO.get("Country") + "\n";
dataParsed = dataParsed + singleParsed +"\n" ;
}
} 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.data.setText(this.dataParsed);
}
}
I/System.out: [CDS]rx timeout:0
[CDS]rx timeout:0
[OkHttp] sendRequest>>
I/System.out: [OkHttp] sendRequest<<
W/System.err: org.json.JSONException: No value for Name
at org.json.JSONObject.get(JSONObject.java:389)
W/System.err: at
com.taxsmart.jsonsimpleexample.fetchData.doInBackground
(fetchData.java:38)at
com.taxsmart.jsonsimpleexample.fetchData.doInBackground
(fetchData.java:18)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at
java.util.concurrent.ThreadPoolExecutor.runWorker
(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)