selam,

json cümleleri olarak bahsettiğimiz şey aslında zaten js objesi. onu
text olarak ele aldığımızda serialize edilmiş obje gibi düşünebiliriz.
unserialize için ise ömer beyin de belirttiği gibi eval kullanailiriz.
sizinde farkettiğiniz üzere rhino bize eval imkanı tanıyor.. genelde
bir kavram karmaşı söz konusu ve insanlar json'a sadece xml
alternatifi muamelesi yapıyorlar. yani evet taşıyıcı katman olarak
json xml karşılaştırması gibi şeyler mantıklı ama bu 99 dan beri
javascript'in nesne tanımlama notasyonlarından birisi ve ecmascript
standardına[1] giren bir js yeteneği.

[1] http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf

kolay gelsin..
29 Mayıs 2010 18:06 tarihinde Alper KANAT <[email protected]> yazdı:
> Selam,
>
> Cevap için teşekkür ederim. eval'in döndüğü değere bakmak aklıma gelmemişti
> ama eğer JS tarafında fonksiyon ile {key: value} şeklinde bir nesne
> dönüyorsak bu Java tarafında [Object object] olaraks görünüyordu. Hoş;
> eval'in döndürdüğü değeri almadığım için belki de map edebileceğimi
> göremedim ama sanmıyorum. Yani yaklaşık olarak şöyle bir şey (çalışacağını
> sanmıyorum ama deneyeceğim):
>
> HashMap<String><String> hede = engine.eval("function hebelek() { return
> {'ad': 'alper', 'soyad': 'kanat'} }; hebelek();");
>
> JS tarafından nesne dönerken çok farklı şeyler yapılabileceğinden çözümü
> JSON kullanmakta buldum ama o da kastırdı biraz. json.org'un sitesinden
> json2.js 'yi sıkıştırıp JS tarafında nesneleri JSON cümlesi yapmak için
> kullanıyorum. Java tarafında da JSON okumak için google-gson adında bir
> kütüphane kullandım. Bu şekilde 2 tarafa da veri transferi kolaylaştı ama
> kulağımı tersten tutuyormuş gibi hissediyorum kendimi..
>
> ---
> Quis custodiet ipsos custodes?
>
>
> 29 Mayıs 2010 18:19 tarihinde Ömer Fadıl USTA <[email protected]> yazdı:
>>
>> Merhaba
>> Tam olarak doğru anladığımdan emin değilim ama sanırım aradığın şey şu
>> oluyor :
>> How to Access Script Objects
>>
>> The eval, invokeMethod, and invokeFunction methods always return an
>> Object instance. For most script engines, this object is the last
>> value that your script calculated. So the easiest way to access
>> objects in the scripting environment is to return them from your
>> script procedures or make sure that your script evaluates to the
>> desired object.
>> Örneklerle açıklamalı şekli  :
>> http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/
>>
>> Tam ters olay yani javadan nesne js e aktarmak ta aynı dökümanın
>> başlarındaki kısımda bulunuyor
>>
>> How to Access Java Objects From Script
>>
>> JSR 223 implementations provide programming language bindings that
>> allow access to Java platform classes, methods, and properties. The
>> access mechanism will usually follow the scripting language's
>> conventions for native objects in that particular scripting
>> environment.
>>
>> How do you get Java objects into the script environment? You can pass
>> objects into script procedures as arguments using the Invocable
>> interface. Alternatively, you can "put" them there: Your Java
>> programming language code can place Java objects into the scripting
>> environment by invoking a script engine's put method. This method
>> places key-value pairs into a javax.script.Bindings object, which is
>> maintained by a script engine. A Bindings object is a map of key-value
>> pairs that can be accessed from within an engine.
>>
>>
>> sonuç olarak sanırım bu site işini görecektir :
>> http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/
>>
>> 2010/5/29 Alper KANAT <[email protected]>:
>> > Merhabalar,
>> >
>> > Çalıştığım bir projede JDK6 ile birlikte gelen javax.script paketini
>> > kullanıyorum. Yazdığım JS betiklerinin Java tarafından çalıştırılmasını
>> > ve
>> > sonuçlarının görünmesini sağlamaya çalışıyorum. Fakat JS nesneleri
>> > açısından
>> > sıkıntım var. Kod bloğu örnekleriyle açıklamaya çalışayım:
>> >
>> > JS:
>> >
>> > var hede = {'ad': 'alper', 'soyad': 'kanat'}
>> > java_cagrisi(hede)
>> >
>> > Bunu yaptığımda Java tarafında gönderdiğim şey [Object object] şeklinde
>> > görünüyor. Haliyle gönderdiğim nesnenin içindeki veriye de ulaşamıyorum.
>> > Aklıma JSON ile veriyi cümleye çevirip o şekilde yollamak geldi ama bu
>> > da
>> > hem Java tarafında, hem de JS tarafında bir JSON kütüphanesi
>> > gerektiriyor.
>> > Haliyle sıkışmış durumdayım epey..
>> >
>> > Bu konuda tecrübesi olan varsa tecrübelerini paylaşırsa çok sevinirim.
>> >
>> > İyi çalışmalar..
>> >
>> > ---
>> > Quis custodiet ipsos custodes?
>> >
>> > _______________________________________________
>> > Linux-programlama mailing list
>> > [email protected]
>> > https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> > Liste kurallari: http://liste.linux.org.tr/kurallar.php
>> >
>> >
>>
>>
>>
>> --
>> Ömer Fadıl USTA
>> http://www.bilisimlab.com/
>> _______________________________________________
>> Linux-programlama mailing list
>> [email protected]
>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap