I haven't developed the module, will have to look at the code, but I would expect to work for the array object, given it relies on libjansson external library.

Maybe you can try with:

$avp(result1)="{\"a\":[{\"origin\":\"125.16.231.74\",\"Dest\":\"725.76.731.77\"}]}";

just to see if it works and there is no problem parsing that array, but the problem is having an array as root object.

Cheers,
Daniel


On 26.04.17 07:51, vivek@advaitamtech.com wrote:

There are no error messages for the below test JSON object. Let me give you a clear picture,

 

$avp(result1)="{\"origin\":\"125.16.231.74\",\"Dest\":\"725.76.731.77\"}" --> Successfully parsed and result is recevied.

 

$avp(result1)="[{\"origin\":\"125.16.231.74\",\"Dest\":\"725.76.731.77\"}]"; --> No Error and no parsed result either.

 

$avp(result1)="{\"origin\":\"125.16.231.74\",\"Dest\":\"725.76.731.77\"},{\"origin\":\"225.26.231.24\",\"Dest\":\"225.26.231.27\"}"; --> Results in error.

   ERROR: jansson [jansson_funcs.c:59]: janssonmod_get(): failed to parse:  {"origin":"125.16.231.74","Dest":"725.76.731.77"},{"origin":"225.26.231.24","Dest":"225.26.231.27"}
ERROR: jansson [jansson_funcs.c:61]: janssonmod_get(): json error at line 1: end of file expected near ','

$avp(result1)="[{\"origin\":\"125.16.231.74\",\"Dest\":\"725.76.731.77\"},{\"origin\":\"225.26.231.24\",\"Dest\":\"225.26.231.27\"}]" --> No error. But no result either. GIves result as zero.

 

I understand that with "[ ]" , its the right JSON object. But api doesnt give the parsed result.

 

Thanks,

Vivek.

 

-----Original Message-----
From: "Daniel-Constantin Mierla" <miconda@gmail.com>
Sent: Tuesday, 25 April, 2017 7:47pm
To: "Kamailio (SER) - Users Mailing List" <sr-users@lists.kamailio.org>, sr-users@lists.sip-router.org
Subject: Re: [SR-Users] JANSSON module not working for multiple JSON objects

Hello,


On 25.04.17 15:57, vivek@advaitamtech.com wrote:

Hi All,

 

Am using JANSSON module to parse the JSON object I receive.

 

I tried using JSON module of kamailio. Since its giving error in loading the module due to  error"libjson-c.so.3: cannot open shared object file: No such file or directory", I went ahead to use JANSSON module.

 

JANSSON module is parsing the single JSON object perfectly. But not parsing the multiple JSON objects.

 

JSON object am trying to parse:

$avp(result1)= "[{"origin":"125.16.231.74","Dest":"725.76.731.77"},{"origin":"225.26.231.24","Dest":"225.26.231.27"}]"

 

JANSSON API used: jansson_get("origin", "$avp(result1)", "$var(origin)");

 

Any suggestions will be really helpful.

are there any error messages?

Cheers,
Daniel

-- Daniel-Constantin Mierla www.twitter.com/miconda -- www.linkedin.com/in/miconda Kamailio Advanced Training - May 22-24 (USA) - www.asipto.com Kamailio World Conference - May 8-10, 2017 - www.kamailioworld.com


-- 
Daniel-Constantin Mierla
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - May 22-24 (USA) - www.asipto.com
Kamailio World Conference - May 8-10, 2017 - www.kamailioworld.com