有没有一种方法可以使用jsonpath动态地在json上进行部分复制?

oyjwcjzk  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(294)

我有一个java应用程序托管一个数据检索api。我想把不同的内容返回给不同的呼叫者。例如,对于调用方a,所有字段中只有3个可用,但是对于调用方b,所有字段都应返回。
示例:MyDB存储“shop”数据,包括名称、位置和此商店中销售的书籍。对于商店定位器网站,我只想返回“name”和“location”字段。对于图书浏览器客户端,我只想返回“图书”字段,对于每本书,只返回“类别”、“作者”和“标题”字段;对于管理员客户端,我想返回所有内容。
例如

{
    "shop": {
        "name": "Great Store",
        "location": {
            "country": "Canada",
            "province": "BC",
            "city": "Vancouver",
            "streetAddress": "123 ABC Ave"
        },
        "books": [
            {
                "category": "reference",
                "author": "Nigel Rees",
                "title": "Sayings of the Century",
                "price": 8.95,
                "inStock": true
            },
            {
                "category": "fiction",
                "author": "Evelyn Waugh",
                "title": "Sword of Honour",
                "price": 12.99,
                "inStock": true
            },
            {
                "category": "fiction",
                "author": "Herman Melville",
                "title": "Moby Dick",
                "isbn": "0-553-21311-3",
                "price": 8.99,
                "inStock": false
            },
            {
                "category": "fiction",
                "author": "J. R. R. Tolkien",
                "title": "The Lord of the Rings",
                "isbn": "0-395-19395-8",
                "price": 22.99,
                "inStock": true
            }
        ]
    }
}

我正在考虑使用jsonpath存储客户机和要访问的数据之间的配置Map。
例如

"storeLocator": ["$.name", "$.location"]
"bookbrowser": ["$.books[*].category", "$.books[*].author"]
"admin": ["$"]

但是,我认为没有一种好方法可以将数据重新构造为json,只使用jsonpath中指定的字段的配置。
以前有人这样做过吗?它采取什么方法?
谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题