Java Android仅JSON对象通过迭代获取
我有一个只包含对象的json文件,现在我无法通过迭代获取所有对象,因为这里没有数组 下面是我在android studio中尝试的代码&JSon数据截图 您仍然可以迭代:Java Android仅JSON对象通过迭代获取,java,android,json,parsing,Java,Android,Json,Parsing,我有一个只包含对象的json文件,现在我无法通过迭代获取所有对象,因为这里没有数组 下面是我在android studio中尝试的代码&JSon数据截图 您仍然可以迭代: for (Iterator key=jsonObjectchild.keys();key.hasNext();) { JSONObject flatName = json.get(key.next()); ... } 这是一个完整的例子。对我有用 HttpURLConnection connection =
for (Iterator key=jsonObjectchild.keys();key.hasNext();) {
JSONObject flatName = json.get(key.next());
...
}
这是一个完整的例子。对我有用
HttpURLConnection connection = null;
try {
URL url = new URL("https://api.myjson.com/bins/r7dj6");
connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder stringBuffer = new StringBuilder();
while ((line = reader.readLine()) != null){
stringBuffer.append(line);
}
JSONObject jsonObject = new JSONObject(stringBuffer.toString());
JSONObject apartmentObject = jsonObject.getJSONObject("Apartment");
Iterator<String> keys = apartmentObject.keys();
while (keys.hasNext()) {
String flatName = keys.next();
JSONObject flat = apartmentObject.getJSONObject(flatName);
String age = flat.getString("age");
String color = flat.getString("color");
String name = flat.getString("name");
String owner = flat.getString("owner");
String partner = flat.getString("partner");
Log.d("Flat", flatName + ": " + age + ", " + color + ", " + name + ", " + owner + ", " + partner);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}
HttpURLConnection=null;
试一试{
URL=新URL(“https://api.myjson.com/bins/r7dj6");
connection=(HttpURLConnection)url.openConnection();
connection.connect();
InputStream InputStream=connection.getInputStream();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(inputStream));
弦线;
StringBuilder stringBuffer=新的StringBuilder();
而((line=reader.readLine())!=null){
stringBuffer.append(行);
}
JSONObject JSONObject=newJSONObject(stringBuffer.toString());
JSONObject apartmentObject=JSONObject.getJSONObject(“公寓”);
迭代器keys=apartmentObject.keys();
while(keys.hasNext()){
字符串flatName=keys.next();
JSONObject flat=apartmentObject.getJSONObject(flatName);
String age=flat.getString(“age”);
String color=flat.getString(“color”);
String name=flat.getString(“name”);
字符串所有者=flat.getString(“所有者”);
String partner=flat.getString(“partner”);
Log.d(“平面”,平面名称+”:“+age+”、“+color+”、“+name+”、“+owner+”、“+partner”);
}
}捕获(例外e){
e、 printStackTrace();
}最后{
if(连接!=null){
连接断开();
}
}
for(迭代器key=jsonObjectchild.keys();key.hasNext();){JSONObject flatName=jsonObjectchild.getJSONObject(String.valueOf(key));String name=flatName.getString(“name”);String color=flatName.getString(“color”);}我试着这么做,但没有wokring@Tasnuvaoshin字符串.valueOf()中缺少key.next()
HttpURLConnection connection = null;
try {
URL url = new URL("https://api.myjson.com/bins/r7dj6");
connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder stringBuffer = new StringBuilder();
while ((line = reader.readLine()) != null){
stringBuffer.append(line);
}
JSONObject jsonObject = new JSONObject(stringBuffer.toString());
JSONObject apartmentObject = jsonObject.getJSONObject("Apartment");
Iterator<String> keys = apartmentObject.keys();
while (keys.hasNext()) {
String flatName = keys.next();
JSONObject flat = apartmentObject.getJSONObject(flatName);
String age = flat.getString("age");
String color = flat.getString("color");
String name = flat.getString("name");
String owner = flat.getString("owner");
String partner = flat.getString("partner");
Log.d("Flat", flatName + ": " + age + ", " + color + ", " + name + ", " + owner + ", " + partner);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}