【发布时间】:2019-05-12 16:21:50
【问题描述】:
运行此代码以获取 JSON 时,我收到“org.json.JSONException: No value for name”。然而,当我使用:(https://api.myjson.com/bins/j5f6b),一个测试 JSON URL 时,它给了我想要的输出。
已尝试在某些地方将其更改为 JSON 对象,但没有帮助。
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("http://www.free-map.org.uk/fm/ws/bsvr.php?bbox=-0.73,51.04,-0.71,51.06&way=highway&format=json");
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;
}
JSONObject jsonObject = new JSONObject(data);
JSONArray JA = jsonObject.getJSONArray("features");
for (int i = 0; i < JA.length(); i++) {
JSONObject JO = (JSONObject) JA.get(i);
singleParsed = "name:" + JO.get("name") + "\n";
dataParsed = dataParsed + singleParsed +"\n" ;
System.out.print(JO);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
twod.data.setText(this.dataParsed);
}
预期结果:名称输出实际结果:org.json.JSONException:名称无值
【问题讨论】:
标签: java android json org.json