是否可以仅使用 JDK 或 HttpComponents 处理 JSON 响应?

Oli*_*ier 3 java json httpurlconnection facebook-graph-api

我们正在升级我们的网络应用程序以使用 Facebook 的 Graph API,该 API 返回 JSON 响应。但是,除非我们别无选择,否则我们不想向 JSON 库添加依赖项。对于服务器端 http 请求,我们使用 Apache HttpComponents。

因此,我的问题是 JDK 和/或 HttpComponents 中可以用来处理 JSON 响应的类(如果有)是什么?欢迎使用代码片段:)

Vad*_*zim 7

不幸的是,原生 JSON 支持被推迟到 Java 9 之后

但为了体育精神,这里是使用Nashorn JavaScript 引擎的简单 Java 8 hacky 解决方案,没有任何外部依赖:

String json = "{\"foo\":1, \"bar\":\"baz\"}";
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
Object o = engine.eval(String.format("JSON.parse('%s')", json));
Map<String, String> map = (Map<String, String>) o;
System.out.println(Arrays.toString(map.entrySet().toArray()));
// [foo=1, bar=baz]
Run Code Online (Sandbox Code Playgroud)

由于可以用 Java 8u60 JSON.parse代替,Java.asJSONCompatible因此可以更好地处理 JSON 数组。

学分:

java和javascript之间传递JSON的有效方法

https://dzone.com/articles/mapping-complex-json-structs-with-jdk8-nashorn