我的项目中的raw文件夹中的json文件中有以下(以及更多,但只有部分内容)代码。
{
"Monday": [
{
"time": "09:15",
"class": "Nature",
"room": "AL32"
},
{
"time": "10:15",
"class": "Nature",
"room": "AL32"
}
],
"Tuesday": [
{
"time": "12:15",
"class": "Maths",
"room": "AL20"
},
{
"time": "13:15",
"class": "Englsh",
"room": "AG22"
}
]....etc
}
我希望它显示为
Time|Class|Room
Monday
09:15|Nature|AL32
10:15|Nature|AL32
Tuesday
12:15|Maths|AL20
13:15|English|AG22
etc etc
我所做的(到目前为止)是,阅读json文件中的信息 BufferedReader jsonReader = new BufferedReader(new InputStreamReader(this.getResources()。openRawResource(R.raw.localjsonfile)));
然后我可以用
打印文件中的所有内容(到LogCat)String readLine = null;
// While the BufferedReader readLine is not null
while ((readLine = jsonReader.readLine()) != null)
{
System.out.println(readLine);
}
但我不知道从哪里去。我想我周一在一个名为monday的数组/对象中存储任何东西(周二在一个名为tuesday等的数组/对象中)然后打印出数组/对象中的值并将它们放在我拥有的TextView字段中(我有三个文本视图叫做android:id =“@ + id / time”,android:id =“@ + id / class and android:id =”@ + id / room“)然后将textviews重新打印到屏幕上根据需要。
我刚刚开始学习android和java,我对json一无所知,所以我不知道如何继续学习。
答案 0 :(得分:0)
尝试使用此代码从行文件夹中获取JSON并进行解析。
//Get Data From Text Resource File Contains Json Data.
InputStream inputStream = getResources().openRawResource(R.raw.localjsonfile);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int ctr;
try {
ctr = inputStream.read();
while (ctr != -1) {
byteArrayOutputStream.write(ctr);
ctr = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
Log.v("Text Data", byteArrayOutputStream.toString());
try {
// Parse the data into jsonobject to get original data in form of json.
JSONObject jObject = new JSONObject(
byteArrayOutputStream.toString());
JSONArray jArray = jObject.getJSONArray("Monday");
String time="";
String class ="";
String room ="";
ArrayList<String[]> data = new ArrayList<String[]>();
for (int i = 0; i < jArray.length(); i++) {
time= jArray.getJSONObject(i).getString("time");
class= jArray.getJSONObject(i).getString("class");
room= jArray.getJSONObject(i).getString("room");
data.add(new String[] {time, class,room});
}
} catch (Exception e) {
e.printStackTrace();
}
查看此library以获取有关JSON解析的帮助, 有关JSON解析的更多示例,请阅读this article