如何在没有模型的情况下找到JSON中的特定元素



我有这样的JSON数据…

{
{
   "School": "ABC School",
    "School Address": [
{
  "Office": "Road No 123"
},
{
  "Admin Office": "Road No 321"
},
{
  "Admission Office": "Road No 456"
}
],
 "School Brach": [
{
  "Brach name": "North Brach",
  "Brach Id ": "001",
  "Brach Contact": [
    {
      "Primary Phone": "12345676890",
      "AllowExternal":true
    },
    {
      "Primary Email": "xyz@school.com"
      "AllowExternal":true
    },
    {
      "Primary fax": "0123456789",
      "AllowExternal":false
    }
  ]
},
{
  "Brach name": "South Brach",
  "Brach Id ": "002"
},
{
  "Brach name": "West Brach",
  "Brach Id ": "003"
},
{
  "Brach name": "East Brach",
  "Brach Id ": "004"
}
 ]
}

我正在从外部呼叫中获取JSON,我必须处理该JSON的某些元素。

从上面的结构中,假设我想获取" north brach"标签" brach contact"的所有数据。

,但我不想处理完整的JSON,也不想为我的代码中完整的JSON结构创建模型对象。

有什么办法可以用爪哇,任何外部罐子或其他东西来做到这一点?

我的预期输出是" Brach Contact"的JSON结构

"Brach Contact": [
    {
      "Primary Phone": "12345676890",
      "AllowExternal":true
    },
    {
      "Primary Email": "xyz@school.com",
      "AllowExternal":true
    }
  ]

作为输入源是外部的,因此它们有可能会更改JSON结构,因此我独立于结构而不是标签名称。尽管这是我们的下一个优先事项。

请注意,我正在使用Java 8

使用Spring Boot

任何一个人对此有所帮助…

您可以看一下 JSONPATH

我在这里找到了一篇不错的介绍文章:https://www.baeldung.com/guide-to-jayway-jsonpath。

但是,如果您使用此功能,则需要列入目标元素的完整路径。但这也将 parse 整个json,而无需您设置型号等等。

如果您不想解析JSON,那么我建议您看看 JSON流媒体解析器

杰克逊有一个流API:https://www.baeldung.com/jackson-streaming-api

最新更新