作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的 JSONObject :
{
"per_page": 3,
"total": 12,
"data": [{
"color": "#98B2D1",
"year": 2000,
"name": "cerulean",
"id": 1,
"pantone_value": "15-4020"
}, {
"color": "#C74375",
"year": 2001,
"name": "fuchsia rose",
"id": 2,
"pantone_value": "17-2031"
}
],
"page": 1,
"total_pages": 4
}
从中我应该得到所有的键,包括per_page
,total
,data
,color
,年份
、pantone_value
、名称
、页
和total_pages
如果我使用 JSONObject.names() 或 JSONObject.keySet() 。我只得到最外面的键
最佳答案
package com.samples;
import java.util.Iterator;
import gvjava.org.json.JSONArray;
import gvjava.org.json.JSONException;
import gvjava.org.json.JSONObject;
public class JSONObjectSample {
public static void main (String [] args) {
String jsonString = new String("{\"per_page\": 3,\"total\": 12,\"data\": [{\"color\": \"#98B2D1\",\"year\": 2000,\"name\": \"cerulean\",\"id\": 1,\"pantone_value\": \"15-4020\" }, {\"color\": \"#C74375\",\"year\": 2001,\"name\": \"fuchsia rose\",\"id\": 2,\"pantone_value\": \"17-2031\" }], \"page\": 1,\"total_pages\": 4 }\r\n");
try {
JSONObject jsonObject = new JSONObject(jsonString);
Iterator<String> keys = jsonObject.keys();
while(keys.hasNext()) {
String key = keys.next();
System.out.println(key);
if(jsonObject.get(key) instanceof JSONArray) {
JSONArray array = (JSONArray) jsonObject.get(key);
JSONObject object = (JSONObject) array.get(0);
Iterator<String> innerKeys = object.keys();
while(innerKeys.hasNext()) {
String innerKey = innerKeys.next();
System.out.println(innerKey);
}
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
关于java - 如何从java中的JSONObject获取所有键/子键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789074/
我是一名优秀的程序员,十分优秀!