我有一个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值,然后执行以下操作:

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”循环。

08-07 06:00