sách gpt4 ai đã đi

Phân tích cú pháp trong Java có thể truy cập được trong Java

In lại 作者:行者123 更新时间:2023-12-02 13:10:09 36 4
mua khóa gpt4 Nike

tôi có

public JSONObject parseXML(String xml) {
JSONObject jsonObject = XML.toJSONObject(xml);
return jsonObject;
}

来自 org.json 库。

在 Nashorn 我希望能够做到

let foo = parseXML(someXMLString);
console.log(foo.someProperty);

我最终得到的是 NPE。但如果我这样做

let foo = parseXML(someXMLString);
console.log(JSON.parse(foo.someProperty));

它有效。是否有与 JSON.parse 等效的函数,我可以在 Java 中执行并返回,而无需在 JavaScript 中使用 JSON.parse?

编辑:请注意它不是重复的。我不是问如何解析 JSON 中的某些值,而是问如何返回整个对象,以便 Nashorn 可以解析它,而无需额外的 JSON.parse

1 Câu trả lời

您可以从 Java 调用 JSON.parse 或任何其他脚本函数。从 Java 调用 JSON.parse 的示例代码:

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import jdk.nashorn.api.scripting.JSObject;

public class Main {
public static void main(String[] args) throws Exception {
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine e = m.getEngineByName("nashorn");

// get ECMAScript JSON.parse
JSObject jsonParse = (JSObject)e.eval("JSON.parse");

// initialize/retrieve JSON string here
String str = "{ \"foo\": 42, \"bar\": { \"x\": \"hello\" } }";

// call JSON.parse from Java
Object parsed = jsonParse.call(null, str);

// expose parsed object to script
e.put("obj", parsed);

// access parsed object from script
e.eval("print(obj.foo)");
e.eval("print(obj.bar.x)");
}
}

关于java - Java 中的解析可在 Java 中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43988791/

36 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com