帮助解析JSON并显示结果(Android)

时间:2011-07-27 22:08:19

标签: android json parsing gson

我创建了一个JSON文件并且我上传了一个域,我的目标是解析该文档,但是我做错了,这是我的JSON文件:

{
    "Show" : {
        "id" : "abcde123",
        "name" : "Traviata",
        "date" : "September 15, 2011"
    }
}

这是我用来解析JSON的Java代码:

private void parse(){
    try {

        URL eventsJSON = new URL("http://www.site.com/test/sample.json");
        URLConnection tc = eventsJSON.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(tc.getInputStream()));

        String line;
        while ((line = in.readLine()) != null) {
            JSONArray jArray = new JSONArray(line);

            for (int i = 0; i < jArray.length(); i++) {
                eventsJSONObject = (JSONObject) jArray.get(i);

            }
        }

        JSONArray eventsArray = eventsJSONObject.getJSONArray("Show");

    //name of the show
    Log.d("LOG", jArray.getJSONObject(0).getString("name").toString());

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

但是课程没有用..有人可以帮助我吗? 谢谢!!!! :)

修改: 这是一个有效的代码,但我无法使其从文件

解析JSON
 String jString = "{\"Show\" : {\"from\" : \"June 12, 2011\",\"id\" : \"abcde123\",\"name\" : \"Traviata\"}}";


 JSONObject jObject = new JSONObject(jString);
 JSONObject eventsObject = jObject.getJSONObject("Shows");

 String eventId = eventsObject.getString("id");
 String eventName = eventsObject.getString("name");
 String eventDateFrom = eventsObject.getString("from");

如何实现缓冲读取器并在jString String中记忆JSON代码?

1 个答案:

答案 0 :(得分:2)

此:

JSONArray eventsArray = eventsJSONObject.getJSONArray("Show");

应解析为JSONObject:

JSONObject eventObj = eventsJSONObject.getJSONOnject("Show");

休息应该很简单。 “show”表示具有3个字段的对象,而不是数组。

BTW,阵列看起来像这样:

{
    "Show" : [
        "id" : "abcde123",
        "name" : "Traviata",
        "date" : "September 15, 2011"
    ]
}