Привет, я работаю над динамическим приложением для Android, и у меня есть следующий json.Хорошо читать каждую строку. Я понял, как это сделать в Java (имейте в виду, что я только начал работать с json вчера), как я могу прочитать внутренний массив, например, item2, в ArrayList в Java, мне нужен какой-то циклдобавить в строковый массив скриншоты ссылок.Спасибо за любую помощь с моей проблемой.
"Manager":
[
{
"name" : "Sample item",
"icon" : "http://www.test.com/icon.png",
"link" : "http://www.test.com/sample.zip",
"summary" : "sample summary here",
"screenshots": [
"http://test.com/link2screenshot1.png",
"http://test.com/link2screenshot2.png"
]
},
{
"name" : "Sample item2",
"icon" : "http://www.test.com/icon2.png",
"link" : "http://www.test.com/sample2.zip",
"summary" : "sample summary here2",
"screenshots": [
"http://test.com/2/link2screenshot1.png",
"http://test.com/2/link2screenshot2.png"
]
}
]
=== РЕДАКТИРОВАТЬ ===
Хорошо, вот окончательное решение, следующий метод будет читать jsonиз URL и вытащить то, что я хочу, благодаря ninetwozero
public ArrayList<String> JSONInner(int count, String url, String outer, String inner){
ArrayList<String> linkArrayList = new ArrayList<String>();
URL u = null;
StringBuilder FileData = null;
try {
u = new URL(url);
String InputData = null;
InputStream is = null;
DataInputStream dis = null;
FileData = new StringBuilder();
is = u.openStream();
dis = new DataInputStream(new BufferedInputStream(is));
while ((InputData = dis.readLine()) != null) {
FileData.append(InputData);
}
is.close();
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
JSONObject json = null;
try {
json = new JSONObject(FileData.toString());
} catch (JSONException e1) {
e1.printStackTrace();
}
if(FileData.toString() != null) {
try {
JSONArray managerArray = json.getJSONArray(outer);
JSONObject managerObject = managerArray.optJSONObject(count);
JSONArray linkArray = managerObject.getJSONArray(inner);
for(int subCount = 0, maxSubCount = linkArray.length(); subCount < maxSubCount; subCount++){
linkArrayList.add( linkArray.getString( subCount ));
}
}catch (JSONException e){
e.printStackTrace();
}
}
return linkArrayList;
}