有没有一种不用额外的库就能在Java中解析JSON的简单方法?
我对JavaScript和JSON真的很陌生。我正在编写一个Javaservlet,需要将JSON解析为Java对象,但诀窍是我不能使用JSON simple或gson等外部库 所以我已经将JavaScript文件的内容保存在一个名为“contents”的字符串中 这将正确打印出对象的各种属性的所有名称。问题是,我不知道接下来该怎么办。我尝试了各种不同的NativeObject方法,但都没有用 我肯定错过了什么很明显的东西。有人能帮我吗有没有一种不用额外的库就能在Java中解析JSON的简单方法?,java,javascript,json,parsing,servlets,Java,Javascript,Json,Parsing,Servlets,我对JavaScript和JSON真的很陌生。我正在编写一个Javaservlet,需要将JSON解析为Java对象,但诀窍是我不能使用JSON simple或gson等外部库 所以我已经将JavaScript文件的内容保存在一个名为“contents”的字符串中 这将正确打印出对象的各种属性的所有名称。问题是,我不知道接下来该怎么办。我尝试了各种不同的NativeObject方法,但都没有用 我肯定错过了什么很明显的东西。有人能帮我吗 谢谢。contents=“myVar=“+contents
谢谢。
contents=“myVar=“+contents+”;”代码>…不生成合法的JSON。JSON中没有赋值。请参阅JSON的定义:JSON并不意味着要进行eval
ed。为了安全起见,它意味着要进行解析。让你的JSON保持干净和兼容…这会让你心痛不已。他们知道LIB是免费的吗?是的,它们很大。如果操作得当,您自己的解决方案也会达到这个大小。最终,您将拥有自己的自制解析库。无意冒犯,它将充满bug,不会像一些更受欢迎的库那样进行战斗测试。你可能想戴上你的“令人信服的帽子”,并再次与你的经理谈论使用这些外部库中的一个。
contents = "myVar = " + contents + ";";
BufferedWriter bWriter = new BufferedWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"));
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
Object returnVal = engine.eval(contents);
NativeObject a = (sun.org.mozilla.javascript.internal.NativeObject) engine.get("myVar");
Object[] ids = a.getAllIds();
for (Object id : ids) {
String newId = (String) id;
bWriter.write("\n" + newId);
}