Java 从json对象提取特定数据并将其存储在列表中
我是json格式的新手。我将Json信息存储在Json对象中,我只想提取列表中的名称键值。至少我有一个用户,有时不止一个用户。使用Java或Groovy进行提取Java 从json对象提取特定数据并将其存储在列表中,java,json,groovy,devops,bitbucket-api,Java,Json,Groovy,Devops,Bitbucket Api,我是json格式的新手。我将Json信息存储在Json对象中,我只想提取列表中的名称键值。至少我有一个用户,有时不止一个用户。使用Java或Groovy进行提取 { "reviewers": [ { "user": { "name": "name1.n1", "emailAddress": "example@example.com&
{
"reviewers": [
{
"user": {
"name": "name1.n1",
"emailAddress": "example@example.com"
},
"role": "REVIEWER"
},
{
"user": {
"name": "name2.n2",
"emailAddress": "example2@example.com"
},
"role": "REVIEWER"
}
]
}
将Java与库org.json.JSONObject一起使用
JSONObject json =new JSONObject(YOUR_JSON_HERE );
JSONArray array = json.getJSONArray("reviewers" );
for(int i=0;i<array.length();i++){
JSONObject user =array.getJSONObject(i);
System.out.println(user.getJSONObject("user").get("name"));
}
}
JSONObject json=新的JSONObject(这里是您的json);
JSONArray数组=json.getJSONArray(“审阅者”);
对于(inti=0;i使用Java和库org.json.JSONObject
JSONObject json =new JSONObject(YOUR_JSON_HERE );
JSONArray array = json.getJSONArray("reviewers" );
for(int i=0;i<array.length();i++){
JSONObject user =array.getJSONObject(i);
System.out.println(user.getJSONObject("user").get("name"));
}
}
JSONObject json=新的JSONObject(这里是您的json);
JSONArray数组=json.getJSONArray(“审阅者”);
对于(int i=0;i您可以使用Groovy获得如下名称列表:
jason = '''{
"reviewers": [
{
"user": {
"name": "name1.n1",
"emailAddress": "example@example.com"
},
"role": "REVIEWER"
},
{
"user": {
"name": "name2.n2",
"emailAddress": "example2@example.com"
},
"role": "REVIEWER"
}
]
}
'''
import groovy.json.JsonSlurper
def jsonslurper = new JsonSlurper()
def object = jsonslurper.parseText(jason)
List names = object.findAll { it.value instanceof List }
.values()
.flatten()
.collect { it.user.name }
println names
只需使用Groovy,您就可以获得如下名称列表:
jason = '''{
"reviewers": [
{
"user": {
"name": "name1.n1",
"emailAddress": "example@example.com"
},
"role": "REVIEWER"
},
{
"user": {
"name": "name2.n2",
"emailAddress": "example2@example.com"
},
"role": "REVIEWER"
}
]
}
'''
import groovy.json.JsonSlurper
def jsonslurper = new JsonSlurper()
def object = jsonslurper.parseText(jason)
List names = object.findAll { it.value instanceof List }
.values()
.flatten()
.collect { it.user.name }
println names
基本groovy+json文档在此:
基本groovy+json文档在此:
如何使用数组对象访问length()?不,数组是JSONArray array=json.getJSONArray(“审阅者”);不是jsonObject?如何使用数组对象访问length()?不,数组是JSONArray array=json.getJSONArray(“审阅者”);不是jsonObject.values()方法无法访问,我在官方文档中也找不到它。是findAll{}是否要对所有元素进行迭代?它对列表中的值进行迭代,例如,有多个出现的值,如user。.values()
返回返回的映射中包含的值的集合。它在官方文档中的第5个示例中。.values()方法不可访问,我在官方文档中也找不到它。findAll{}是否要迭代所有元素?它迭代列表中的值,即具有多个事件的值,如user。.values()
返回返回的映射中包含的值的集合。它在官方文档的第5个示例中。这个println obj.reviewers*.user.name是否将迭代所有用户名和名称?如果是,是否可以将它们存储在字符串列表中?是。它将迭代数组中的所有元素。这是一个“扩展运算符”。读读她e:回答得很好。谢谢a lotIs这个println obj.reviewers*.user.name将迭代所有用户名和名称?如果是,可以将它们存储在字符串列表中吗?是的。它将迭代数组中的所有元素。这是一个“扩展运算符”。请阅读这里:回答得很好。非常感谢