为什么我无法从此URL读取JSON?

时间:2015-11-06 02:18:02

标签: android json

今天我遇到了问题,我无法阅读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链接时,我无法从中读取任何内容。 有人向我解释原因吗?以及如何解决这个问题?

谢谢!

3 个答案:

答案 0 :(得分:1)

因为这个JSON响应不是JSON。

显然,这个JSON响应包含在括号中。您必须以String形式检索响应,然后在解析为JSON之前删除第一个和最后一个括号。

答案 1 :(得分:0)

您的JSON无效,请删除字符串开头和结尾的括号

答案 2 :(得分:0)

它不是JSON,它就像JSONP,Google它