Какой объект имеет строковое представление `{name = value}` в JavaScript? - PullRequest
2 голосов
/ 24 апреля 2019

Я получаю комплекс value в JavaScript (внутри движка JDK Nashorn), с которым мне приходится взаимодействовать. Это значение выводится на консоль как {shown=true}. Когда я говорю typeof value, я получаю object в качестве ответа. Когда я говорю Object.keys(value);, я получаю TypeError: {shown=true} is not an Object in .... Когда я говорю value.shown или value["shown"], я всегда получаю null.

Что это за тип, этот загадочный объект, и как мне правильно получить доступ к значению свойства «показанные»?

К сожалению, создать простой пример непросто, и я не могу отладить в интерактивном режиме ... Любая помощь очень ценится!

Edit: JDK - это JavaSE-1.8.

Вызов JSON.parse(value); приводит к

javax.script.ScriptException: SyntaxError: Invalid JSON: <json>:1:1 Expected , or } but found s
{shown=true}
 ^ 

1 Ответ

0 голосов
/ 24 апреля 2019

Предполагая, что вы получили объект Java, вы должны иметь возможность вызвать value.getClass(), чтобы получить его класс Java.

Из своего строкового представления это может быть экземпляр java.util.HashMap или аналогичный. Если это так, вы сможете получить доступ к значению свойства «показанные» через value.get("shown").

...