我需要从后端向用户提供JSON。但是在通过网络发送之前我需要删除一些数据,因为它是保密的,每个元素的密钥都以conf_
开头。
假设我有以下JSON源:
{
"store": {
"book": [
{
"category": "reference",
"conf_author": "Nigel Rees",
"title": "Sayings of the Century",
"conf_price": 8.95
},
{
"category": "fiction",
"conf_author": "Evelyn Waugh",
"title": "Sword of Honour",
"conf_price": 12.99
},
{
"category": "fiction",
"conf_author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"conf_price": 8.99
},
{
"category": "fiction",
"conf_author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"conf_price": 22.99
}
],
"bicycle": {
"color": "red",
"conf_price": 19.95
}
},
"expensive": 10
}
由于soruce JSON的结构可能会有所不同(未知),因此我需要一种方法来识别要根据键名(^conf_)
通过模式删除的元素。
所以生成的JSON应该是:
{
"store": {
"book": [
{
"category": "reference",
"title": "Sayings of the Century"
},
{
"category": "fiction",
"title": "Sword of Honour"
},
{
"category": "fiction",
"title": "Moby Dick",
"isbn": "0-553-21311-3"
},
{
"category": "fiction",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8"
}
],
"bicycle": {
"color": "red"
}
},
"expensive": 10
}
由于我的源JSON在books数组中将有1m +条目,其中每个条目将有100多个字段(子对象),我正在寻找一些基于流/事件的方法,如StAX,而不是将整个JSON解析为JSONObject出于性能和资源原因进行操作。
我查看了Jolt
,JSONPath
和JsonSurfer
之类的内容,但到目前为止,这些图书馆让我无处可去。
任何人都可以提供一些有关如何最好地实现我的用例的详细信息吗?
问候!
答案 0 :(得分:0)
你可以使用Jackson的Streaming API,它可以用来解析甚至千兆字节大小的巨大JSON。它可以用来处理大文件而无需将它们完全加载到内存中。它允许获取你想要的数据并忽略你的内容不想也