Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种不用额外的库就能在Java中解析JSON的简单方法?_Java_Javascript_Json_Parsing_Servlets - Fatal编程技术网

有没有一种不用额外的库就能在Java中解析JSON的简单方法?

有没有一种不用额外的库就能在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

我对JavaScript和JSON真的很陌生。我正在编写一个Javaservlet,需要将JSON解析为Java对象,但诀窍是我不能使用JSON simple或gson等外部库

所以我已经将JavaScript文件的内容保存在一个名为“contents”的字符串中

这将正确打印出对象的各种属性的所有名称。问题是,我不知道接下来该怎么办。我尝试了各种不同的NativeObject方法,但都没有用

我肯定错过了什么很明显的东西。有人能帮我吗


谢谢。

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