我在JavaScript中接收了一个复杂的value
(在JDK Nashorn引擎内部),我必须与之交互。该值以{shown=true}
的形式打印到控制台。当我说typeof value
我收到object
作为答案。当我说Object.keys(value);
我收到TypeError: {shown=true} is not an Object in ...
。乳清我说value.shown
或value["shown"]
我总是收到null
。
什么类型是这个神秘的对象,我如何正确访问“显示”属性的值?
不幸的是,创建一个简单的例子并不容易,我不能交互式调试...任何帮助都非常感谢!
编辑:JDK是JavaSE-1.8。
调用JSON.parse(value);
导致
javax.script.ScriptException: SyntaxError: Invalid JSON: <json>:1:1 Expected , or } but found s
{shown=true}
^
假设你得到的是一个Java对象,你应该能够调用value.getClass()
来获取它的Java类。
从它的字符串表示,它可能是java.util.HashMap或类似的实例。如果是这样,您应该能够通过value.get("shown")
访问“显示”属性的值。