Java—如何从JSON模式获取所有字段名
大家好,我是JSON模式的新手,我只想知道如何定义Java模型到JSON模式之上的映射,我想从定义中获取所有字段名 这意味着我要解析JSON模式并返回如下结果:Java—如何从JSON模式获取所有字段名,java,json,jsonschema,json-schema-validator,Java,Json,Jsonschema,Json Schema Validator,大家好,我是JSON模式的新手,我只想知道如何定义Java模型到JSON模式之上的映射,我想从定义中获取所有字段名 这意味着我要解析JSON模式并返回如下结果: { "type": "TestType", "schema": { "type": "object", "properties": { "field1": { "format": "date", "la
{
"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模式、字段3、字段4…我假设您的
JSON
位于名为var
的字符串变量中。
下面的代码使用org.json
[field1, field2]
就这样
我为使用maven的人添加了org.json
包的maven依赖项
JSONObject jObj=new JSONObject(var);
ArrayList arr=new ArrayList();
for (Object keyObj: jObj.keySet())
{
String key = (String)keyObject;
arr.add(key);
}
org.json
json
20160810
我假设您的json
位于名为var
的字符串变量中。
下面的代码使用org.json
[field1, field2]
就这样
我为使用maven的人添加了org.json
包的maven依赖项
JSONObject jObj=new JSONObject(var);
ArrayList arr=new ArrayList();
for (Object keyObj: jObj.keySet())
{
String key = (String)keyObject;
arr.add(key);
}
org.json
json
20160810
1.转换为JSONObject
2.保存在列表中
3.将列表
转换为数组
试试这个
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
public void getKey(字符串响应){
List keyList=new ArrayList();
试一试{
JSONObject JSONObject=新JSONObject(响应);
JSONObject schema=JSONObject.getJSONObject(“schema”);
JSONObject属性=schema.getJSONObject(“属性”);
迭代器迭代器=properties.keys();
while(iterator.hasNext()){
字符串键=迭代器.next().toString();
keyList.add(key);
}
字符串[]arr=(字符串[])keyList.toArray(新字符串[keyList.size()]);
}捕获(JSONException e){
e、 printStackTrace();
}
}
1.转换为JSONObject
2.保存在列表中
3.将列表
转换为数组
试试这个
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
public void getKey(字符串响应){
List keyList=new ArrayList();
试一试{
JSONObject JSONObject=新JSONObject(响应);
JSONObject schema=JSONObject.getJSONObject(“schema”);
JSONObject属性=schema.getJSONObject(“属性”);
迭代器迭代器=properties.keys();
while(iterator.hasNext()){
字符串键=迭代器.next().toString();
keyList.add(key);
}
字符串[]arr=(字符串[])keyList.toArray(新字符串[keyList.size()]);
}捕获(JSONException e){
e、 printStackTrace();
}
}
OP需要递归/搜索结构,否则会找到“field1”和“field2”。我认为他只需要属性中对象的键?该代码将列出所有键。jObj已经是该模式的实例了吗?OP只有模式。这并不是OP想要的OP需要递归/搜索结构才能找到“field1”和“field2”。我想他只需要属性中对象的键。var是什么?该代码将列出所有键。jObj已经是该模式的实例了吗?OP只有架构。这不是OP想要的。这只是一件小事,但您不需要强制转换,因为您提供了数组(新字符串[keyList.size()]
),谢谢您的建议。祝您好运。@Tony只是一件小事,但您不需要强制转换,因为数组(新字符串[keyList.size()])
)谢谢你的建议。祝你好运。@Tony