gpt4 book ai didi

java - 检查 json 属性是否存在,是否为字符串,是否为正确的值

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:10 25 4
gpt4 key购买 nike

使用 gson,我使用这种繁琐的方法来确保所需的属性具有所需的值:

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ScratchSpace {

public static void main(String[] args) {

// create json object from source data - in my real code, this is sourced externally
JsonObject json = new JsonParser().parse("{ \"product\": \"foobar\"}").getAsJsonObject();

// does this object have a key called product, which is a string, and equal to our expected value?
boolean correctProduct = false;
if (json.has("product")) {
JsonElement productElement = json.get("product");
if (productElement.isJsonPrimitive()) {
String product = productElement.getAsString();
if ("foobar".equals(product)) {
correctProduct = true;
}

}
}
System.out.println("correctProduct = " + correctProduct);
}

}

我几乎可以肯定我做的不是最理想的。是否有一种简单、可读、简短的单行代码来实现同样的目标?

编辑:如果可能的话,我想继续使用 gson。

最佳答案

使用 java.util.Optional,以下工作:

final boolean correctProduct = Optional.ofNullable(json.get("product"))
.filter(JsonPrimitive.class::isInstance)
.map(JsonPrimitive.class::cast)
.map(JsonPrimitive::getAsString)
.filter("foobar"::equals)
.isPresent();

关于java - 检查 json 属性是否存在,是否为字符串,是否为正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41953235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com