首页 > 解决方案 > Java Nashorn在java中构建json数组对象找不到方法

问题描述

我尝试创建 java json 数组,找不到任何使用 Nashorn 创建它们的方法我可以创建简单的对象......

private void createJsonObject() {
        try {

            final Map<String, Object> newMap = new HashMap<>();
            newMap.put("foo",1);
            newMap.put("bar", true);

            ScriptObjectMirror json = (ScriptObjectMirror) this.engine.eval("JSON");
            json.putAll(newMap);

            this.engine.put("jsonObject", json);
            String result = (String) this.engine.eval("JSON.stringify(jsonObject)");
            System.out.println(result);
        } catch (ScriptException e) {
            e.printStackTrace();
        }

    }

结果:{"bar":true,"foo":1}

在这里我尝试创建数组,但我得到空的 json

 private void createJsonObject() {
        try {


            List<String> returnList = new ArrayList<>();
            returnList.add("x");
            returnList.add("y");
            ScriptObjectMirror json = (ScriptObjectMirror) this.engine.eval("JSON");         
            json.put("test",returnList);
            this.engine.put("jsonObject", json);
            String result = (String) this.engine.eval("JSON.stringify(jsonObject)");
            System.out.println(result);
        } catch (ScriptException e) {
            e.printStackTrace();
        }

    }

结果: {}

最终目标是使用 java 本机工具在内存中构建对象数组而不使用依赖项

标签: javajsonnashorn

解决方案


推荐阅读