java - 如何检查 JsonElement 中的项目是否存在于单独的 JsonArray 中?

标签 java arrays

我有一个 JsonElement:

JsonElement testCaseParametersJson = batchItem.getTestCase().getToolParameters().get("testCaseParameters");

其中分配以下内容:

["dessert", "place", "tvShow"]

我有一个 JsonArray:

JsonObject testParametersJson = batchItem.getTestParameters().getAsJsonObject();

其中分配以下内容:

{"dessert": "cookies", "tvShow": "survivor", "color" : "blue"}

我希望获得一些有关如何检查 JsonArray 中的键是否作为 JsonElement 中的项目存在的建议。

最佳答案

使用 Gson 库,您可以从 JSONElement/JSONObject 获取字符串值并执行以下操作:

String jsonObject = "{\"dessert\": \"cookies\", \"tvShow\": \"survivor\", \"color\" : \"blue\"}";
String jsonArray = "[\"dessert\", \"place\", \"tvShow\"]";

Map<String, String> objMap = new Gson().fromJson(jsonObject, new TypeToken<HashMap<String, String>>() {}.getType());
List<String> arrayVals = new Gson().fromJson(jsonArray, new TypeToken<List<String>>(){}.getType());
for(Entry<String, String> entry : objMap.entrySet()) {
  for (String val : arrayVals) {
    if (entry.getKey().equals(val)) {
      System.out.println("Found value in key set: " + val);
    }
  }
}

代码可以总结,如果使用Java 8,可以根据需要尝试“forEach”循环。

关于java - 如何检查 JsonElement 中的项目是否存在于单独的 JsonArray 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46609333/

相关文章:

java - 在 Android 应用程序中使用 zxing 扫描条形码阅读器数据

java - 为什么我无法将数组中的 View 分配给监听器?

arrays - 风帆 :how to convert array of array to json object

c - 请帮忙传递多维数组

java - Java 中的自定义绘画 - 将 UI 元素绘制到 JPanel 上

java - 如何在android中创建年龄计算方法的方法

java - 使用 Java 查找我所有 EC2 实例的公共(public) IP?

java - 尝试通过另一个外部 jar 引用外部 jar - httpcore 通过 httpclient

javascript - 查找具有最大值的父对象

javascript - 如何减去对象值