首页 > 解决方案 > 从 json 对象中提取特定数据并将它们存储在列表中

问题描述

我是 json 格式的新手。我将 Json 信息存储在 json 对象中,我只想提取列表中的名称键值。至少我有一个用户,有时不止一个用户。使用 Java 或 Groovy 进行提取。

{
  "reviewers": [
    {
      "user": {
        "name": "name1.n1",
        "emailAddress": "example@example.com"
      },
      "role": "REVIEWER"
    },
    {
      "user": {
        "name": "name2.n2",
        "emailAddress": "example2@example.com"
      },
      "role": "REVIEWER"
    }
  ]
}

标签: javajsongroovydevopsbitbucket-api

解决方案


基本 groovy+json 文档在这里:https ://groovy-lang.org/json.html

import groovy.json.JsonSlurper

def json = '''{
  "reviewers": [
    {
      "user": {
        "name": "name1.n1",
        "emailAddress": "example@example.com"
      },
      "role": "REVIEWER"
    },
    {
      "user": {
        "name": "name2.n2",
        "emailAddress": "example2@example.com"
      },
      "role": "REVIEWER"
    }
  ]
}
'''

def obj = new JsonSlurper().parseText(json)

println obj.reviewers.collect{ it.user.name } // v1
println obj.reviewers*.user.name              // the same as above but shorter

推荐阅读