【发布时间】:2013-02-23 10:03:17
【问题描述】:
更新:我应该马上提到这一点:我首先考虑了一个 Java/JSON 映射框架,但我的经理不希望我向项目添加更多依赖项,所以这是作为一种选择。 JSON-Java jar 已经在我们的类路径中,所以我可以使用它,但仍然无法通过树木看到森林如何使用它。
我的 Java 程序正在收到以下格式的 JSON(尽管值会一直变化):
{"order":{"booze":"1","handled":"0","credits":"0.6",
"execute":0,"available":["299258"],"approved":[],
"blizzard":"143030","reviewable":["930932","283982","782821"],
"units":"6","pending":["298233","329449"],"hobbit":"blasphemy"}}
我正在寻找最简单、高效、可靠的方法,从这个 JSON 字符串中挑选特定值并将它们聚合到 List<Long> 中。
具体来说,我希望提取并聚合所有“ids”,即您看到的available、approved、@ 的所有数值987654327@ 和 pending 字段。这些字段中的每一个都是一个由 0+“ids”组成的数组。因此,在上面的示例中,我们看到了以下 id 细分:
-
available: 有 1 个 id (299258) -
approved: 有 0 个 id -
reviewable: 有 3 个 id (930932, 283982, 782821) -
pending: 有 2 个 id (298233, 329449)
我需要一些 Java 代码来运行并生成一个 List<Long>,其中包含所有 6 个提取的 id,没有特定的顺序。 id 只需要进入列表即可。
这感觉像是一个极其复杂、令人费解的正则表达式,我什至不确定从哪里开始。非常感谢任何帮助。提前致谢。
【问题讨论】:
-
正则表达式?为什么不只解析 JSON?
-
谢谢 - 请看我的更新