nested key in bindings
Murat Cetin
mcetin71 at gmail.com
Wed Sep 21 16:07:21 UTC 2016
adding the group
On Wed, Sep 21, 2016 at 11:53 AM, Murat Cetin <mcetin71 at gmail.com> wrote:
> Thanks João. I've realized that Bindings is a Map but its values are not
> defined as Map, so just casting the first get's return to Map and then
> chaining with a second get as in ((Map)(bindings.get(key1)).get(key2)
> worked for me.
>
> On Wed, Sep 21, 2016 at 10:55 AM, João Paulo Varandas <
> joaovarandas at inpaas.com> wrote:
>
>> Hi Murat.
>>
>> For a structure like this:
>> var obj = { "key1": { "key2" : { "key3": "value1-2-3" } } }
>>
>>
>> Simple answer:
>> The get call support flat structures.
>>
>> b.get("obj.key1.key2.key3") will return null ...
>>
>> But ...
>>
>>
>> Long answer:
>> If you are in JavaScript, you can evaluate this with the syntax:
>> var val = obj.key1.key2.key3;
>>
>> If you are in Java, what happens is that you have a Map, inside a Map,
>> inside a Map ...
>>
>> Map<String, Object> map1 = (Map<String, Object>) obj.get("key1");
>> Map<String, Object> map2 = (Map<String, Object>) map1.get("key2");
>> Object val = (Map<String, Object>) map2.get("key3");
>>
>> Since you cannot chain the calls, you either need a helper method where
>> you will "chain" this in a recursive method, or you may ask the
>> scriptEngine to evalute this for you!
>>
>> Have you tried something like ...
>> myScriptEngine.eval( "myobj.key1.key2.key3", bindings )
>> ?
>>
>> See this gist:
>> https://gist.github.com/joaovarandas/57ff0b539e9fbf82974959dfb168b468
>>
>>
>> 2016-09-21 11:20 GMT-03:00 Murat Cetin <mcetin71 at gmail.com>:
>>
>>> Hi,
>>>
>>> I read a .js file that results in Bindings that have a nested key value
>>> structure, e.g, key1: value1, value1 : [key2, key3, key4], key2: [value2,
>>> value3], and etc. Bindings.get(Object) will only return key1..I cannot
>>> chain multiple get calls and I don't see a method to get to say key2..
>>> Am I
>>> doing something wrong? or does the get call only support flat structures?
>>>
>>> thanks,
>>> Murat
>>>
>>
>>
>> "Esta mensagem, incluindo seus anexos, pode conter informacoes
>> confidenciais e privilegiadas.
>> Se voce a recebeu por engano, solicitamos que a apague e avise o
>> remetente imediatamente.
>> Opinioes ou informacoes aqui contidas nao refletem necessariamente a
>> posicao oficial da Plusoft."
>>
>> "Antes de imprimir, pense em sua responsabilidade e compromisso com o
>> MEIO AMBIENTE"
>>
>>
>
More information about the nashorn-dev
mailing list