我创建了一个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代码?
答案 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"
]
}