Java - 如何从 JSON 架构中获取所有字段名称

Java - How to get all the field names from JSON Schema

{
    "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 架构和 return:

[field1, field2]

请注意,字段列表是自动的,可以在 JSON 架构中添加更多字段,字段 3、字段 4 ...

我假设您的 json 在一个名为 var 的字符串变量中。 使用 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.convert 到 JSONObject

2.save 在 List

3.convert ListArray

试试这个。

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();
    }
}