Wait, this can't be right for purely technical reasons: what would this to do a string containing vertical tab characters?
Such strings are illegal in XML. I see nothing in the "JSONx Conversion Rules" that addresses the problem that the strings representable in XML are a smaller set than those in JSON.
[edit] Yup, confirmed. The documentation says: "The \b (backspace) and the \f (form feed) characters are not supported in XML and, subsequently, are not supported in JSONx." So not only does this JSON->XML thing seem obtuse, but it's partial.
> So not only does this JSON->XML thing seem obtuse, but it's partial.
If it wasn't partial, it would be useful -- allowing existing XML tools to easily consume and/or produce JSON tools by applying a JSON -> XML on input and/or XML -> JSON on output would be valuable.
But when the conversion is restricted to an XML-1.0-compatible-subset of JSON, the value drops considerably.
This is SO SO important. I've had to convert JSON to XML and vice versa so many times in order to transfer data to and from legacy code components. No, I don't think an ideal world involves any sort of communication where one side speaks JSON and the other speaks XML, but the current world very much needs a standardization like this.
Insofar as the world needs a JSON->XML conversion standard, it needs one that handles all legal JSON, which this doesn't (it could if it used the same approach to target XML 1.1 instead of XML 1.0, or it could if it used a slightly more complex representation of JSON strings in the XML 1.0, but instead it chose to be a conversion for a restricted XML-1.0-friendly subset of JSON.)
What, is this supposed to be funny? You try converting completely different formats into one another without a standard, and see the kinds of fucked up bug reports you get.
Same reason as SOAP/WSDL: there's good money in consulting so it would be stupid to do something that to simple, people might be able to solve their own problems.
Honestly I get that there an advantage in respect to tooling and this might ease integration into existing system, but I can't help feel that this is introducing an extra level of complexity that you would only find acceptable if you at IBM customer level scale.
The ability to introduce at least some type safety seems nice though.
Because there are already tool chains to handle XML with features not (widely) available for JSON, for example validation (XSD) and transformation (XSLT).
To use existing XML 1.0 tools on data that comes in as JSON.
It may be somewhat problematic that it doesn't actually support all JSON, because the characters that are permitted (even with escapes) in XML 1.0 text do not include all characters that can appear in JSON values, so if you use it on legal JSON that isn't constrained to be XML 1.0 compatible, it will do something wrong (the docs aren't clear on whether it will fail or just drop the offending characters), so the only place that it seems safe to use is in a constrained internal environment where you control "JSON" to mean "JSON using XML-1.0-safe characters".
[+] [-] namecast|11 years ago|reply
The output syntax is even more glorious than you'd think:
<?xml version="1.0" encoding="UTF-8"?> <json:object xsi:schemaLocation="http://www.datapower.com/schemas/json jsonx.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:json="http://www.ibm.com/xmlns/prod/2009/jsonx"> <json:string name="name">John Smith</json:string> <json:object name="address"> <json:string name="streetAddress">21 2nd Street</json:string> <json:string name="city">New York</json:string> <json:string name="state">NY</json:string> <json:number name="postalCode">10021</json:number> </json:object> <json:array name="phoneNumbers"> <json:string>212 555-1111</json:string> <json:string>212 555-2222</json:string> </json:array> <json:null name="additionalInfo" /> <json:boolean name="remote">false</json:boolean> <json:number name="height">62.4</json:number> <json:string name="ficoScore"> > 640</json:string> </json:object>
...and no, I'm not joking, and don't call me Shirley.
[+] [-] donpdonp|11 years ago|reply
[+] [-] duaneb|11 years ago|reply
[+] [-] xienze|11 years ago|reply
[+] [-] pbreit|11 years ago|reply
[+] [-] tiles|11 years ago|reply
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] sp332|11 years ago|reply
[+] [-] rasz_pl|11 years ago|reply
[+] [-] dyoo1979|11 years ago|reply
Such strings are illegal in XML. I see nothing in the "JSONx Conversion Rules" that addresses the problem that the strings representable in XML are a smaller set than those in JSON.
[edit] Yup, confirmed. The documentation says: "The \b (backspace) and the \f (form feed) characters are not supported in XML and, subsequently, are not supported in JSONx." So not only does this JSON->XML thing seem obtuse, but it's partial.
I wrote a rant about this point a few days ago. Seems more well timed than I had hoped. https://plus.google.com/117593568781545916065/posts/ViNzo5Jj...
[+] [-] dragonwriter|11 years ago|reply
If it wasn't partial, it would be useful -- allowing existing XML tools to easily consume and/or produce JSON tools by applying a JSON -> XML on input and/or XML -> JSON on output would be valuable.
But when the conversion is restricted to an XML-1.0-compatible-subset of JSON, the value drops considerably.
[+] [-] laydros|11 years ago|reply
But I read the headline and threw up in my mouth a little.
[+] [-] edwingustafson|11 years ago|reply
[+] [-] the_mitsuhiko|11 years ago|reply
[+] [-] thrush|11 years ago|reply
[+] [-] dragonwriter|11 years ago|reply
[+] [-] lovelearning|11 years ago|reply
[+] [-] peterwwillis|11 years ago|reply
[+] [-] valarauca1|11 years ago|reply
[+] [-] JonnieCache|11 years ago|reply
[+] [-] drivingmenuts|11 years ago|reply
XSLT really is the seventh circle of Hell.
[+] [-] powdahound|11 years ago|reply
[+] [-] Norm--|11 years ago|reply
[+] [-] OhhHeyTyler|11 years ago|reply
buddy of mine made JSHOL on a whim which creates html from json
[+] [-] DonHopkins|11 years ago|reply
[+] [-] kra34|11 years ago|reply
[+] [-] CamperBob2|11 years ago|reply
[+] [-] marcofiset|11 years ago|reply
[+] [-] angersock|11 years ago|reply
[+] [-] neilellis|11 years ago|reply
I can hear the screams in my sleep.
[+] [-] kevinSuttle|11 years ago|reply
[+] [-] easytiger|11 years ago|reply
[+] [-] dapatil|11 years ago|reply
[+] [-] kttmrt|11 years ago|reply
[+] [-] mrweasel|11 years ago|reply
Honestly I get that there an advantage in respect to tooling and this might ease integration into existing system, but I can't help feel that this is introducing an extra level of complexity that you would only find acceptable if you at IBM customer level scale.
The ability to introduce at least some type safety seems nice though.
[+] [-] danbruc|11 years ago|reply
[+] [-] dragonwriter|11 years ago|reply
It may be somewhat problematic that it doesn't actually support all JSON, because the characters that are permitted (even with escapes) in XML 1.0 text do not include all characters that can appear in JSON values, so if you use it on legal JSON that isn't constrained to be XML 1.0 compatible, it will do something wrong (the docs aren't clear on whether it will fail or just drop the offending characters), so the only place that it seems safe to use is in a constrained internal environment where you control "JSON" to mean "JSON using XML-1.0-safe characters".
[+] [-] Scuds|11 years ago|reply