java - 在 JSON 数组中查找 JSON 对象

标签 java arrays json

我的目标是验证从 RabbitMQ 获得的某些 JSON 是否对应于单个文件中数组中的预期 JSON 之一。

换句话说,我需要验证这个 JSON:

{
  "networkCode":"network",
  "programId":"92000"
}

存在于此 JSON 数组中:

[
{
   "networkCode":"network",
   "programId":"92000"
},
{
   "networkCode":"network",
   "programId":"92666"
}
]

非常感谢您的帮助!

我的代码的某些部分

//GET DESIRABLE JSON
String message = new String(delivery.getBody(), StandardCharsets.UTF_8);
            JSONObject myJSON= new JSONObject(message);

//GET THE JSON ARRAYS FROM FILE
            JSONParser parser = new JSONParser();
            Object expectedJSONs= parser.parse(new FileReader("C:\\amqpclient\\src\\test\\java\\tradeDoubler\\ExpectedDTO.json"));
            JSONArray expectedArray = (JSONArray) expectedJSONs;

            JSONAssert.assertEquals(
                    myJSON, expectedArray , JSONCompareMode.LENIENT);

编译说无法解决这个问题

线程“main”java.lang.AssertionError 中出现异常:需要 JSON 数组,但传入 JSON 对象

最佳答案

Org.json库非常容易使用。

示例代码如下:

import org.json.*;

JSONObject obj = new JSONObject(" yourJSONObjectHere ");

JSONArray arr = obj.getJSONArray("networkArray");
for (int i = 0; i < arr.length(); i++)
{
    String networkCode = arr.getJSONObject(i).getString("networkCode");
    ......
}

通过迭代 JSONArray,您可以检查每个对象是否等于您的搜索。

您可以从以下位置找到更多示例:Parse JSON in Java

关于java - 在 JSON 数组中查找 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56494725/

相关文章:

java - 替换密码技术,其中每个字母都被字母顺序下的一个 7 个字母替换

Python - 动态构建嵌套树

json - 使用 Bash 变量构建 JSON 字符串

json - R:将 JSON 通用扁平化为 data.frame

java - 要测试的正则表达式 '_'

swing - Switch 语句有问题吗?

java - 在 sybase 中编写 Big XML 并读取它?

php - 获取所有mysql选择的行到一个数组中

javascript - 在javascript中转置可变大小数组?

jquery - 如何使用 jquery 在数组中设置唯一值