友 我直接从给定http://samplejson.com/transactions.json的url解析json内容时遇到问题,但是当我将相同的url内容存储为我的res / raw文件夹中的文本文件时,它也解析数据,但是在获取url内容时从网上它显示一个例外(即) JSONArray文本必须以“[\ n”的字符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++) { }
答案 0 :(得分:10)
好的,您的代码似乎正在读取包括标头在内的所有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...
}
}