On Fri, Jul 6, 2012 at 10:38 AM, Sagara Gunathunga <[email protected]> wrote: > @Shmeera, > > Can you look into how Apache Camel [1] [2] handle XML <=> JSON in your > use cases I believe you can find some hints from there ? > > [1] - http://camel.apache.org/xmljson.html > [2] - http://json-lib.sourceforge.net/
Also you could use following convention [1] . [1] - http://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html Thanks ! > > Thanks ! > > On Wed, Jul 4, 2012 at 3:37 PM, Amila Suriarachchi > <[email protected]> wrote: >> >> >> On Mon, Jul 2, 2012 at 3:44 PM, Sagara Gunathunga >> <[email protected]> wrote: >>> >>> On Sun, Jul 1, 2012 at 8:50 PM, Amila Suriarachchi >>> <[email protected]> wrote: >>> > >>> > >>> > On Fri, Jun 29, 2012 at 12:23 PM, Shameera Rathnayaka >>> > <[email protected]> wrote: >>> >> >>> >> Hi devs, >>> >> >>> >> I have a problem with, writing OMElement to the wire >>> >> at the JsonFormatter, The problem is how do i identify >>> >> whether it is a JSON object or JSON array. >>> >> >>> >> As an example let's say i have this OMElement, >>> >> >>> >> <student> >>> >> <name>micky</name> >>> >> <age>15</age> >>> >> <subject>History</subject> >>> >> <subject>Science</subject> >>> >> </student> >>> >> >>> >> So the expected JSON Object is, >>> >> {"student":{"name":'micky" , "age":15 , "subject":["History", >>> >> "Science"]}} >>> >> >>> >> The thing is how should I know the student should be a JsonArray, when >>> >> i >>> >> receive a <subject> Start element? >>> >> >>> >> Another thing is if i get below OMElement, How do i know subject is a >>> >> JsonArray? >>> >> <student> >>> >> <name>micky</name> >>> >> <age>15</age> >>> >> <subject>History</subject> >>> >> </student> >>> >> >>> >> The relevant JSON object should be, >>> >> >>> >> {"student":{"name":'micky" , "age":15 , "subject":["History"]}} >>> >> >>> >> It would be nice to hear your ideas to overcome these problems. >>> > >>> > >>> > It think we can not solve this issue unless the serialiser aware of some >>> > scheme. So this seems to be another limitation about converting xml to >>> > json >>> > and wise versa. >>> > >>> > Shall we follow this convention to over come this problem. >>> > >>> > if we take your example, shall we stick to a method where it always try >>> > to >>> > serialise fields as attributes unless we sure it is an array. >>> > >>> > For an example >>> > >>> > <student> >>> > <name>micky</name> >>> > <age>15</age> >>> > <subject>History</subject> >>> > </student> >>> > >>> > this will be >>> > >>> > {"student":{"name":'micky" , "age":15 , "subject":"History"}} >>> > >>> > and >>> > >>> > <student> >>> > <name>micky</name> >>> > <age>15</age> >>> > <subject>History</subject> >>> > <subject>Science</subject> >>> > </student> >>> > >>> > {"student":{"name":'micky" , "age":15 , "subject":["History", >>> > "Science"]}} >>> > >>> > I think even implementation wise this will not be straight forward. The >>> > only >>> > thing we know for sure root element is not an array. >>> > >>> > Then after completing the first element, if the second element is also >>> > have >>> > the same element name then we can assume it is an array and other wise >>> > it is >>> > a normal attribute. >>> >>> Amila, >>> >>> Your suggestion introduce another problem, format of response JSON >>> message depends on return data quantities. As an example for a same >>> service it use two response formats when the response having size 1 >>> array and having size > 1 arrays. I think this is a major issue for >>> caller side. >> >> >> yes. But as you can see this problem can not solve. so my suggestion works >> for single field elements. But for arrays it has the problem you mentioned. >> Receiving end should process the message accordingly. >> >>> >>> >>> What about to use hybrid approach where XMLStramReader based approach >>> ( 2nd approach) use to handle incoming requests and use Gson stream >>> directly to write response message from Java ( Java => Gson) without >>> using XMLStramWriter (1st approach) ? >> >> >> We already have java ==> Gson binding and it work fine. >> >> The idea of this is to implement an xml stream using json so that any >> service (eg POJO, ADB services) written top of those API can use that. But >> as Shammera pointed out this xml json conversion has problems. >> >> thanks, >> Amila. >> >>> >>> >>> Thanks ! >>> >>> > >>> > thanks, >>> > Amila. >>> > >>> > >>> >> >>> >> >>> >> Thanks, >>> >> Shameera. >>> >> >>> >> >>> >> >>> >> >>> >> On Mon, Jun 25, 2012 at 11:10 AM, Shameera Rathnayaka >>> >> <[email protected]> wrote: >>> >>> >>> >>> Hi devs, >>> >>> >>> >>>> Everything is fine, if i try to print OMElement using >>> >>>> omElement.toString(); >>> >>>> it prints OMElement without any error. But after returning from >>> >>>> JsonBuilder, >>> >>>> and inside the TransportUtils class it throws a class cast exception >>> >>>> when it try >>> >>>> to add this returned OMelement to the SoapEnvelop by using >>> >>>> envelope.getBody().addChild(documentElement); here is the code >>> >>>> segment >>> >>>> in >>> >>>> TransportUtils class >>> >>>> >>> >>>> envelope = soapFactory.getDefaultEnvelope(); >>> >>>> if (documentElement != null) { >>> >>>> envelope.getBody().addChild(documentElement); // THIS LINE >>> >>>> THROWS >>> >>>> AN EXCEPTION >>> >>>> } >>> >>>> >>> >>>> The exception is java.lang.ClassCastException: >>> >>>> org.apache.axiom.om.impl.llom.OMDocumentImpl cannot be cast to >>> >>>> org.apache.axiom.om.impl.OMNodeEx >>> >>> >>> >>> >>> >>> I could able to solve this , there was an error in my >>> >>> GsonXMLStreamReader >>> >>> , I had to dig AXIOM to identify this. AXIOM process the parser while >>> >>> it >>> >>> receive XMLStreamReader.END_ELEMENT but my implementation had an error >>> >>> returning the END_ELEMENT, I solved it now I an not getting above >>> >>> ClassCastException. >>> >>> >>> >>> Thanks, >>> >>> Shameera. >>> >>> >>> >>>> >>> >>>> >>> >>>> What should be the problem for this? , do i use wrong way to get >>> >>>> the OMElement or something else?? devs any comments on this ?? >>> >>>> >>> >>>> Thanks, >>> >>>> Shameera. >>> >>>> >>> >>>> >>> >>>> On Sat, May 5, 2012 at 11:30 AM, Shameera Rathnayaka >>> >>>> <[email protected]> wrote: >>> >>>>> >>> >>>>> Hi devs , >>> >>>>> >>> >>>>> According to my second approach, I need to map json elements in >>> >>>>> request >>> >>>>> to relevant XML tags/text and vice versa. When i am working on this, >>> >>>>> there >>> >>>>> is a problem arises that which convention should i expect for this. >>> >>>>> So i >>> >>>>> need to clarify whether the following convention is correct or are >>> >>>>> there any >>> >>>>> suggestions for it. >>> >>>>> >>> >>>>> json message >>> >>>>> >>> >>>>> { "alise": { >>> >>>>> "bob": { >>> >>>>> "x": "valueX", >>> >>>>> "y": "valueY", >>> >>>>> "z": ["valueU","valueV","valueW"], >>> >>>>> "l": { "name": "john", "age": 23 }, >>> >>>>> "m": [ { "a": ["A","B","C" ] }, { "b": ["D","E","F" ] >>> >>>>> } >>> >>>>> ] >>> >>>>> } >>> >>>>> } >>> >>>>> } >>> >>>>> >>> >>>>> Relevant,expected xml message from this json request (actually, it >>> >>>>> is >>> >>>>> not converted to xml) >>> >>>>> >>> >>>>> <json> >>> >>>>> <alise> >>> >>>>> <bob> >>> >>>>> <x>valueX</x> >>> >>>>> <y>valueY</y> >>> >>>>> <z>valueU</z> >>> >>>>> <z>valueV</z> >>> >>>>> <z>valueW</z> >>> >>>>> <l> >>> >>>>> <name>john</name> >>> >>>>> <age>23</age> >>> >>>>> </l> >>> >>>>> <m> >>> >>>>> <a>A</a> >>> >>>>> <a>B</a> >>> >>>>> <a>C</a> >>> >>>>> </m> >>> >>>>> <m> >>> >>>>> <b>D</b> >>> >>>>> <b>E</b> >>> >>>>> <b>F</b> >>> >>>>> </m> >>> >>>>> </bob> >>> >>>>> </alise> >>> >>>>> </json> >>> >>>>> >>> >>>>> >>> >>>>> Thanks >>> >>>>> Shameera. >>> >>>>> >>> >>>>> >>> >>>>> On Tue, Apr 24, 2012 at 7:12 PM, Shameera Rathnayaka >>> >>>>> <[email protected]> wrote: >>> >>>>>> >>> >>>>>> Hi devs, >>> >>>>>> >>> >>>>>> As this project is accepted for GSoC 2012, I would like >>> >>>>>> to continue my work and looking forward to finish my project >>> >>>>>> as a success in this summer. According to my mentor (Amila >>> >>>>>> Suriarachchi) >>> >>>>>> it is better to improve my knowledge further about Axis2 >>> >>>>>> architecture >>> >>>>>> in this community bounding period. Therefore I'll start to read the >>> >>>>>> Documentation and Apache Axis2 book. >>> >>>>>> >>> >>>>>> Andreas, as you mentioned in the previous mail thread[1] could you >>> >>>>>> please point out some of the code samples in synapse which do >>> >>>>>> a similar work as i do in my 2nd approach of the project?. >>> >>>>>> >>> >>>>>> I will use this thread for future discussion about the project. >>> >>>>>> And I'll keep update my implementation patches to AXIS2-5270 too. >>> >>>>>> >>> >>>>>> >>> >>>>>> [1] >>> >>>>>> >>> >>>>>> http://axis.markmail.org/thread/4lg7xefplv7o65z6#query:page:1+mid:u7zauh37nj4mje6n+state:results >>> >>>>>> >>> >>>>>> Thanks >>> >>>>>> Shameera. >>> >>>>>> >>> >>>>>> -- >>> >>>>>> Shameera Rathnayaka >>> >>>>>> Undergraduate >>> >>>>>> Department of Computer Science and Engineering >>> >>>>>> University of Moratuwa. >>> >>>>>> Sri Lanka. >>> >>>>>> >>> >>>>>> Blog : http://shameerarathnayaka.blogspot.com/ >>> >>>>>> >>> >>>>> >>> >>>>> >>> >>>>> >>> >>>>> -- >>> >>>>> Shameera Rathnayaka >>> >>>>> Undergraduate >>> >>>>> Department of Computer Science and Engineering >>> >>>>> University of Moratuwa. >>> >>>>> Sri Lanka. >>> >>>>> >>> >>>>> Blog : http://shameerarathnayaka.blogspot.com/ >>> >>>>> >>> >>>> >>> >>>> >>> >>>> >>> >>>> -- >>> >>>> Shameera Rathnayaka >>> >>>> Undergraduate >>> >>>> Department of Computer Science and Engineering >>> >>>> University of Moratuwa. >>> >>>> Sri Lanka. >>> >>>> >>> >>>> Blog : http://shameerarathnayaka.blogspot.com/ >>> >>>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> -- >>> >>> Shameera Rathnayaka >>> >>> Undergraduate >>> >>> Department of Computer Science and Engineering >>> >>> University of Moratuwa. >>> >>> Sri Lanka. >>> >>> >>> >>> Blog : http://shameerarathnayaka.blogspot.com/ >>> >>> >>> >> >>> >> >>> >> >>> >> -- >>> >> Shameera Rathnayaka >>> >> Undergraduate >>> >> Department of Computer Science and Engineering >>> >> University of Moratuwa. >>> >> Sri Lanka. >>> >> >>> >> Blog : http://shameerarathnayaka.blogspot.com/ >>> >> >>> > >>> > >>> > >>> > -- >>> > Amila Suriarachchi >>> > WSO2 Inc. >>> > blog: http://amilachinthaka.blogspot.com/ >>> >>> >>> >>> -- >>> Sagara Gunathunga >>> >>> Blog - http://ssagara.blogspot.com >>> Web - http://people.apache.org/~sagara/ >>> LinkedIn - http://www.linkedin.com/in/ssagara >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> >> >> >> -- >> Amila Suriarachchi >> WSO2 Inc. >> blog: http://amilachinthaka.blogspot.com/ > > > > -- > Sagara Gunathunga > > Blog - http://ssagara.blogspot.com > Web - http://people.apache.org/~sagara/ > LinkedIn - http://www.linkedin.com/in/ssagara -- Sagara Gunathunga Blog - http://ssagara.blogspot.com Web - http://people.apache.org/~sagara/ LinkedIn - http://www.linkedin.com/in/ssagara --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
