反序列化 json 数组并使用放心提取值

Deserialize json array and extract value using rest assured

我是java,json,新手放心,努力工作学习如何测试休息api。我有一个返回的数组作为放心的响应:

 Response response = given(getProjectInfoRequest).get();
 response.asString(); 

{
    "options": [
        {
            "text": "111",
            "label": "ABC"
        },
        {
            "text": "222",
            "label": "DEF"
        },
        {
            "text": "333",
            "label": "GHI"
        }
    ]
}

我想提取标签值的文本值 "DEF",我该怎么做?

请注意,在阅读了这么多帖子后,到目前为止我已经完成了以下工作:

1. Options[] options = given(getProjectInfoRequest).when().get().as(Options[].class);
this was giving me exception :
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $

then I tried below:
2. Options options = gson.fromJson(response.asString(), Options.getClass());
this at least resolved the above issue.
    public class Options {
    public String getLabel() {
        return label
    }

    public void setLabel(String label) {
        this.label = label
    }

    public String getValue() {
        return value
    }

    public void setValue(String value) {
        this.value = value
    }
    public String label;
    public String value;
} 

从这一点来看,我不确定如何遍历文本和值数组来提取我需要的内容,请你们提供意见?

请原谅我的无知,问了这么一个基本的问题。 也请给我推荐一个好的source/way来学习这个。

提前致谢!

U can use Gson - 这是一个 Java 库,可用于将 Java 对象转换为其 JSON 表示形式。

JsonParser parser = new JsonParser();
JsonObject o = (JsonObject)parser.parse(response.asString());

for (Map.Entry<String,JsonElement> entry : o.entrySet()) {
    JsonArray array = entry.getValue().getAsJsonArray();
    for (JsonElement elementJSON : array) {
        [...]
    }
}