我有一个下载的应用程序,并将Json数据库保存到存储。
我应该在可扩展列表视图中查看Json对象,我有很多主题,所以我也必须有一个卷轴!
我想知道如何解析Json并将其加载到数组中,然后使用该数组制作可扩展列表视图?
try {
URL url = new URL(gURL);
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
String PATH = Environment.getExternalStorageDirectory()
+ "/H3S/DB";
File file = new File(PATH);
String fileName = fName;
File outputFile = new File(file, fileName);
FileOutputStream fos = new FileOutputStream(outputFile);
InputStream is = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = is.read(buffer)) != -1) {
fos.write(buffer, 0, len1);
}
fos.close();
is.close();
这是json的示例响应:(抱歉json语言是波斯语,因为它们不是UTF-8而不会显示标题):
{
"DBVersion":"4" ,
"Groups":[
{
"Id" : 1,
"title" : "کامپیوتر",
"bg" : "1.png"
},
{
"Id" : 2,
"title" : "شیمی",
"bg" : "2.png"
},
{
"Id" : 3,
"title" : "برق و الکترونیک",
"bg" : "3.png"
},
{
"Id" : 4,
"title" : "Ùیزیک",
"bg" : "4.png"
},
{
"Id" : 5,
"title" : "ریاضی",
"bg" : "5.png"
},
{
"Id" : 6,
"title" : "مکانیک Ùˆ هواÙضا",
"bg" : "6.png"
},
{
"Id" : 7,
"title" : "زیست",
"bg" : "7.png"
}
]
}
我是iOS开发人员,我在iOS中使用Grouped Style UITableView成功完成此操作,但我不知道如何在Android中完成此操作!
答案 0 :(得分:1)
这可以帮到你。这是用于解析响应的代码。
try {
JSONObject jsonObject = new JSONObject(buffer.toString());
String Dbversion= jsonObject.getString("DBVersion");
JSONArray jaGroups = jsonObject.getJSONArray("Groups");
for (int i = 0; i < jaGroups.length(); i++) {
JSONObject jsObject = jaGroups.getJSONObject(i);
String Id = jsObject.getString("Id");
String title = jsObject.getString("title");
String bg = jsObject.getString("bg");
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 1 :(得分:0)
您可以在JsonReader
上使用Android中的InputStreamReader
。您只需根据需要调整开发人员示例中的解析:
http://developer.android.com/reference/android/util/JsonReader.html