{
"type": "TestType",
"schema": {
"type": "object",
"properties": {
"field1": {
"format": "date",
"label": "field 1",
"type": "string"
},
"field2": {
"format": "date",
"label": "field 2",
"type": "string"
}
},
"required": [],
"additionalProperties": false
}
}
嗨,大家好,我是JSON Schema的新手,我只想知道如何定义Java模型以映射到JSON Schema之上,我想从定义中获取所有字段名称。
所以这意味着我想解析JSON Schema并像这样返回:
[field1, field2]
请注意,字段列表是自动的,可能会在JSON Schema,field3,field4中添加更多字段......
答案 0 :(得分:1)
我假设您的json
位于名为var
的String变量中。
使用org.json
获取以下代码。
JSONObject jObj=new JSONObject(var);
ArrayList arr=new ArrayList();
for (Object keyObj: jObj.keySet())
{
String key = (String)keyObject;
arr.add(key);
}
就是这样。
我为那些使用maven的人添加了org.json
包的maven依赖!
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
答案 1 :(得分:1)
1.转换为JSONObject
2.save in List
3.convert List
至Array
试试这个。
public void getKey(String response) {
List<String> keyList = new ArrayList<String>();
try {
JSONObject jsonObject = new JSONObject(response);
JSONObject schema = jsonObject.getJSONObject("schema");
JSONObject properties = schema.getJSONObject("properties");
Iterator iterator = properties.keys();
while (iterator.hasNext()) {
String key = iterator.next().toString();
keyList.add(key);
}
String[] arr = (String[]) keyList.toArray(new String[keyList.size()]);
} catch (JSONException e) {
e.printStackTrace();
}
}