Java 有内置的 JSON 解析器吗? [已关闭]

问题描述 投票:0回答:2

我知道有许多外部库允许解析和处理 JSON 字符串。但是,我需要使用纯 Java 来完成此操作。是否有专门的类,或者我必须发明一种手动解释 JSON 的方法?

java json
2个回答
5
投票

没有。

您可以使用内置的 Nashorn 引擎来评估 Java 8 中的 Javascript

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
        });
    }
}

来源:使用 Java 8 在没有依赖关系的情况下将 JSON 转换为映射

更新:Nashorn 已从 Java 15

中删除

1
投票

用于 JSON 处理的 Java API 提供了可移植的 API 来解析, 生成、转换和查询 JSON。

enter image description here

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

© www.soinside.com 2019 - 2024. All rights reserved.