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。

enter image description here

官方网站参考-https://www.oracle.com/technical-resources/articles/java/json.html

另一答案

Java中没有此类库。但是,如果使用maven,则可以添加GSONJSON-lib依赖项。

以上是关于Java内置JSON解析器的主要内容,如果未能解决你的问题,请参考以下文章

Cocoa 的 JSON 解析器

rest framework之解析器

JSON:Jackson 流解析器——真的值得吗? [关闭]

替换标准 Android JSON 解析器以获得更好的性能?

PHP:JSON 或 XML 解析器更快吗?

无法替换 ASP.Core 3 中的默认 JSON 合同解析器