我知道有许多外部库允许解析和处理 JSON 字符串。但是,我需要使用纯 Java 来完成此操作。是否有专门的类,或者我必须发明一种手动解释 JSON 的方法?
没有。
您可以使用内置的 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
中删除用于 JSON 处理的 Java API 提供了可移植的 API 来解析, 生成、转换和查询 JSON。
官网参考 - https://www.oracle.com/technical-resources/articles/java/json.html