Android json分析错误,因为数据位于不同的行中
现在我正在做一个Android应用程序。现在我在json解析中遇到了一个问题Android json分析错误,因为数据位于不同的行中,android,Android,现在我正在做一个Android应用程序。现在我在json解析中遇到了一个问题 [ { "id":3, "name":"dd" }, { "id":4, "name":"ggg" } ] 我尝试了以下代码 URL website = new URL("url"); InputStream in = website.openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in));
[
{
"id":3,
"name":"dd"
},
{
"id":4,
"name":"ggg"
}
]
我尝试了以下代码
URL website = new URL("url");
InputStream in = website.openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
while ((line = reader.readLine()) != null) {
JSONArray ary=new JSONArray(line);
}
但是我得到了一个例外,因为所有的数据都在不同的行中。如果它在同一行中
[{“id”:3,“name”:“dd”},{“id”:4,“name”:“ggg”}]然后我可以很容易地完成…但是他们在单独的行中提供所有数据..这就是问题..请帮助我的朋友们先获取整个数据,然后再解析它:
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null) {
sb.append(line);
}
JSONArray ary=new JSONArray(sb.toString());
试试这个
StringBuilder builder = new StringBuilder();
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("url");
try {
HttpResponse response = client.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} else {
Log.v("in else", "Failed to download file");
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Log.v("Builder >>", builder.toString());
String response=builder.toString();
最后我得到了
public void parseMovie(InputStream json) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(json));
StringBuilder sb = new StringBuilder();
String line = reader.readLine();
while (line != null) {
sb.append(line);
line = reader.readLine();
}
reader.close();
JSONArray jsonReply = new JSONArray(sb.toString());
System.out.println("length is"+jsonReply.length());
ArrayList<String> id=new ArrayList<String>();
for (int i = 0; i < jsonReply.length(); i++) {
JSONObject jsonMovie = jsonReply.getJSONObject(0);
id.add(jsonMovie.getString("id"));
}
}
public void parseMovie(InputStream json)引发异常{
BufferedReader=new BufferedReader(new InputStreamReader(json));
StringBuilder sb=新的StringBuilder();
字符串行=reader.readLine();
while(行!=null){
某人附加(行);
line=reader.readLine();
}
reader.close();
JSONArray jsonReply=新的JSONArray(sb.toString());
System.out.println(“长度为”+jsonReply.length());
ArrayList id=新的ArrayList();
for(int i=0;i
dd
和ggg
应该被引用,否则它是无效的JSON
。我在您的示例中看不到这一点。另外,试图逐行解析JSON也不会让你成功。那么给我一个简单的例子来阅读datajava.net.unknownhostexception这意味着你的连接有问题,你还没有到达JSON部分。。。