今天我遇到了问题,我无法阅读JSON文件的内容。
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
runOnUiThread(new Runnable() {
@Override
public void run() {
new LoadJsonAsync().execute("http://dongabank.com.vn/exchange/export");
}
});
}
class LoadJsonAsync extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... params) {
if(params[0] != null){
return readFromURL(params[0]);
}else {
return null;
}
}
@Override
protected void onPostExecute(String s) {
Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
}
}
private static String readFromURL(String url){
StringBuilder content = new StringBuilder();
try {
URL u = new URL(url);
URLConnection urlConnection = u.openConnection();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
while((line = bufferedReader.readLine()) != null){
content.append(line + "\n");
}
bufferedReader.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return content.toString();
}
}
问题是from
当我尝试使用其他json
链接时,它可以正常工作。但是当我使用上面的json
链接时,我无法从中读取任何内容。
有人向我解释原因吗?以及如何解决这个问题?
谢谢!
答案 0 :(得分:1)
因为这个JSON响应不是JSON。
显然,这个JSON响应包含在括号中。您必须以String形式检索响应,然后在解析为JSON之前删除第一个和最后一个括号。
答案 1 :(得分:0)
您的JSON无效,请删除字符串开头和结尾的括号
答案 2 :(得分:0)
它不是JSON,它就像JSONP,Google它