Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android json分析错误,因为数据位于不同的行中_Android - Fatal编程技术网

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));

现在我正在做一个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));
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部分。。。