开发者

JSON fetch URL content for Android

Friends, I have a problem in开发者_如何学运维 parsing the json content directly from url given http://samplejson.com/transactions.json, but when i store the same url content as a text file in my res/raw folder it parse the data as well,but when fetching the url content from net it shows an exception (i.e) A JSONArray text must starts with '[' at character 1 of...

what's the wrong here.help me to fix this problem


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++) { }


OK, your code seems to be reading all the HTTP including the headers. That is why yours does not start with "[".

Here is the code that I use to get back the string content of an 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...
            }
        } 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜