JSON извлекает содержимое URL для Android - PullRequest
3 голосов
/ 18 января 2011

Друзья, у меня проблема с парсингом контента json напрямую по указанному URL-адресу http://samplejson.com/transactions.json,, но когда я сохраняю тот же URL-контент, что и текстовый файл в моей папке res / raw, он также анализирует данные, нопри извлечении URL-адреса из сети он показывает исключение (т. е.) Текст JSONArray должен начинаться с '[' с символа 1 из ...

, что здесь не так.решить эту проблему


URL url_net = new URL("http://samplejson.com/transactions.json"); 
InputStream is = url_net.openStream(); 
byte [] buffer = new byte[is.available()]; 
while (is.read(buffer) != -1); 
String jsontext = new String(buffer); 
JSONArray entries = new JSONArray(jsontext); 
x = "JSON parsed.\nThere are [" + entries.length() + "]\n\n"; 
int i; 
for (i=0;i<entries.length();i++) { }

1 Ответ

10 голосов
/ 18 января 2011

ОК, ваш код, кажется, читает все HTTP, включая заголовки. Вот почему ваш не начинается с "[".

Вот код, который я использую для возврата содержимого строки HTTP GET:

public static String getStringContent(String uri) throws Exception {

    try {
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet();
        request.setURI(new URI(uri));
        HttpResponse response = client.execute(request);
        InputStream ips  = response.getEntity().getContent();
        BufferedReader buf = new BufferedReader(new InputStreamReader(ips,"UTF-8"));

        StringBuilder sb = new StringBuilder();
        String s;
        while(true )
        {
            s = buf.readLine();
            if(s==null || s.length()==0)
                break;
            sb.append(s);

        }
        buf.close();
        ips.close();
        return sb.toString();

        } 
    finally {
               // any cleanup code...
            }
        } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...