Java内置JSON解析器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java内置JSON解析器相关的知识,希望对你有一定的参考价值。
我一直在从事一项需要发出请求并获取JSON中特定键值的任务。由于某些限制/复杂性,我想只使用Java的内置库。
用于发出请求,我正在使用HttpURLConnection
,但无法解析JSON。您能否将我指向内置JSON解析器中的Java。
我发现了类似的问题here,但答案不令人满意,还很老,因此再次询问,以防万一,这在Java的最新版本中可用。
答案
您可以在Java 8中使用内置的Nashorn引擎
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Map;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JSONParsingTest
private ScriptEngine engine;
@Before
public void initEngine()
ScriptEngineManager sem = new ScriptEngineManager();
this.engine = sem.getEngineByName("javascript");
@Test
public void parseJson() throws IOException, ScriptException
String json = new String(Files.readAllBytes(/*path*/);
String script = "Java.asJSONCompatible(" + json + ")";
Object result = this.engine.eval(script);
assertThat(result, instanceOf(Map.class));
Map contents = (Map) result;
contents.forEach((t, u) ->
//key-value pairs
);
来源:Converting JSON To Map With Java 8 Without Dependencies
另一答案
用于JSON处理的Java API提供了可解析的API,生成,转换和查询JSON。
官方网站参考-https://www.oracle.com/technical-resources/articles/java/json.html
另一答案
Java中没有此类库。但是,如果使用maven,则可以添加GSON或JSON-lib依赖项。
以上是关于Java内置JSON解析器的主要内容,如果未能解决你的问题,请参考以下文章
JSON:Jackson 流解析器——真的值得吗? [关闭]