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

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

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

  1. {
  2. "shop": {
  3. "name": "Great Store",
  4. "location": {
  5. "country": "Canada",
  6. "province": "BC",
  7. "city": "Vancouver",
  8. "streetAddress": "123 ABC Ave"
  9. },
  10. "books": [
  11. {
  12. "category": "reference",
  13. "author": "Nigel Rees",
  14. "title": "Sayings of the Century",
  15. "price": 8.95,
  16. "inStock": true
  17. },
  18. {
  19. "category": "fiction",
  20. "author": "Evelyn Waugh",
  21. "title": "Sword of Honour",
  22. "price": 12.99,
  23. "inStock": true
  24. },
  25. {
  26. "category": "fiction",
  27. "author": "Herman Melville",
  28. "title": "Moby Dick",
  29. "isbn": "0-553-21311-3",
  30. "price": 8.99,
  31. "inStock": false
  32. },
  33. {
  34. "category": "fiction",
  35. "author": "J. R. R. Tolkien",
  36. "title": "The Lord of the Rings",
  37. "isbn": "0-395-19395-8",
  38. "price": 22.99,
  39. "inStock": true
  40. }
  41. ]
  42. }
  43. }

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

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

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

暂无答案!

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

相关问题