Hi Milinda,

It is not a string array, its actually java objects that is there.

Hi Sajith,

I modified the nashorn script as following :

var onRequest = function (context) {
    var protocols = callOSGiService("org.wso2.andes.kernel.Andes",
"getSupportedProtocols", []);
    var protocolStrings = [];
    for each (var item in protocols) {
        protocolStrings.push(item.toString());
    }

    // var protocolsJson = JSON.stringify(protocolStrings);
    return {"protocols" : protocolStrings};
};

I am assigning the "protocols" json value to a javascript variable in the
client-side as following :

        var protocols =* {{protocols}}*;
        $.each(protocols, function(index, value) {

('#queue-subscription-protocols').append($('<option>').text(value).attr('value',
index));
        });


But I am getting the following errors when rendered the page(client side
js) :

var protocols = [object Array];    <-- Syntax error

When I use JSON.stringify in server side js, I get the following output :

var protocols =
[&quot;AMQP-0-10&quot;,&quot;MQTT-default&quot;,&quot;AMQP-0-91&quot;,&quot;AMQP-8-0&quot;,&quot;AMQP-0-9&quot;];
  <-- Unexpected token &

Any Idea ?

Regards,
Hemika


Hemika Kodikara
Software Engineer
WSO2 Inc.
lean . enterprise . middleware
http://wso2.com

Mobile : +94777688882

On Fri, Jun 10, 2016 at 12:51 PM, Milinda Perera <milin...@wso2.com> wrote:

> Hi Hemika,
>
> If AMQP-0-10, MQTT-default, AMQP-0-91, AMQP-8-0, AMQP-0-9 are strings,
> following should work
>
> JSON.parse("[\"AMQP-0-10\", \"MQTT-default\", \"AMQP-0-91\", \"AMQP-8-0\",
> \"AMQP-0-9\"]")
>
> Accroding to [1] within array " A *value* can be a *string* in double
> quotes, or a *number*, or true or false or null, or an *object* or an
> *array*. These structures can be nested."
>
> [1] http://www.json.org/
>
> Thanks,
> Mili
>
> On Fri, Jun 10, 2016 at 12:33 PM, Hemika Kodikara <hem...@wso2.com> wrote:
>
>> Hi All,
>>
>> I am invoking the callOSGiService method in nashorn to get a list of
>> protocols thats in andes of MB.
>>
>> I am getting the following output after invoking the callOSGiService :
>> [AMQP-0-10, MQTT-default, AMQP-0-91, AMQP-8-0, AMQP-0-9]
>>
>> But need to convert it into a javascript array(Probably a String array).
>> Need to bind it to a dropdown(select element).
>>
>> I tried JSON.parse, but getting the following errors :
>>
>> jjs> JSON.parse("[AMQP-0-10, MQTT-default, AMQP-0-91, AMQP-8-0,
>> AMQP-0-9]");
>> <shell>:1 SyntaxError: Invalid JSON: <json>:1:1 Expected json literal but
>> found ident
>> [AMQP-0-10, MQTT-default, AMQP-0-91, AMQP-8-0, AMQP-0-9]
>>  ^
>>
>> jjs> JSON.parse([AMQP-0-10, MQTT-default, AMQP-0-91, AMQP-8-0, AMQP-0-9]);
>> ECMAScript Exception: SyntaxError: <shell>:1:28 Expected an operand but
>> found default
>> JSON.parse([AMQP-0-10, MQTT-default, AMQP-0-91, AMQP-8-0, AMQP-0-9]);
>>                             ^
>>
>> My OSGi method returns a Set<ProtocolType>.
>>
>> How can I achieve this ?
>>
>> Regards,
>> Hemika
>>
>> Hemika Kodikara
>> Software Engineer
>> WSO2 Inc.
>> lean . enterprise . middleware
>> http://wso2.com
>>
>> Mobile : +94777688882
>>
>> _______________________________________________
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Milinda Perera
> Software Engineer;
> WSO2 Inc. http://wso2.com ,
> Mobile: (+94) 714 115 032
>
>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to