我有这样的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