朋友们,
我在直接从给定http://samplejson.com/transactions.json的url解析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++) { }
解决方法:
好的,您的代码似乎正在读取包括标头在内的所有HTTP.这就是为什么你的不是以“[”开头的原因.
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...
}
}