朋友们,我在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++) { }
Run Code Online (Sandbox Code Playgroud)
Ali*_*tad 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...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14026 次 |
| 最近记录: |