
“JSONx is an IBM standard format to represent JSON as XML” - anacleto
https://twitter.com/DanHarper7/status/514822464673951744
======
chris_j
This comes up every so often on Hacker News. The truth is that this isn't a
bad joke by IBM. Rather, it was a stopgap measure that was created at a time
when DataPower had native support for XML but not for JSON. A later release of
DataPower added native JSON support and removed the need to use JSONx.

Disclosure: I work for IBM and I asked a member of the DataPower team about
JSONx the last time that it came up on Hacker News.

~~~
masklinn
I still don't get why they couldn't just reuse existing semantically
equivalent XML serialisation formats e.g. as far as I can tell, with the
<nil/> extension XML-RPC's serialisation format is a superset of JSON.
ASN.1/XER too.

~~~
A_COMPUTER
jsonx comes with a schema, so you can validate it and mix it with other xml if
you namespace it. I actually see nothing wrong with jsonx if you're moving
json data in and out of a system that natively uses XML. Some people need that
stuff. Ten years ago I was working on a system that required me to format data
as an APL data file because that's what format the the system expected data
in.

~~~
masklinn
> jsonx comes with a schema, so you can validate it and mix it with other xml
> if you namespace it

And you can't do that with pre-existing _XML-based_ formats… why?

------
smackfu
Its just a way to connect new stuff that outputs JSON to legacy software that
expects XML input. Yes, this is what enterprise customers pay companies like
IBM to do.

~~~
drawkbox
Enterprise software is an adventure, you can easily end up in a parallel
dimension of technical debt inception.

~~~
kyllo
You can easily witness organizations that have crossed over the technical debt
event horizon, from which they have no hope of reaching escape velocity.

------
leoh
It seems pretty ridiculous, but think about it for a moment. There are myriad
ways of serializing XML into JSON and viva-versa. Having a published agreed
upon standard could help for interoperability if you have some application
that needs to interface with an application that uses the other format.

------
thristian
Don't forget: Apple also replaced their lovely JSON-like "plist" format with
an XML encoding of the same when they released OS X.

And then it turned out that XML was expensive and inefficient to read, so they
replaced it with even uglier binary goo.

------
emmanueloga_
... also this would allow for people who already invested in xpath/xquery/xslt
to use those languages to process json data.

------
DiabloD3
I want to know the use case that required this

~~~
gaius
It's in the comments below "JSONx is a workaround in older DB2 versions to
process JSON through the XML system."

~~~
krylon
At least that is a reasonable, sane explanation. Otherwise, the idea of
encoding data in JSON and then transforming that to XML seems a little ...
convoluted.

~~~
gaius
It's particularly relevant on IBM as they have hardware-accelerated XML
processing
[http://www-03.ibm.com/systems/z/hardware/features/zaap/](http://www-03.ibm.com/systems/z/hardware/features/zaap/)

~~~
mrsteveman1
From what I read about zAAP and zIIP, they're not actually hardware
accelerators like a DSP or a purpose built processor, rather they're a way to
reduce the cost of running specific workloads on a mainframe, and IBM markets
them that way[1].

The zIIPs themselves seem to be standard z processing units that have been
loaded with microcode that prevents them from doing anything other than run
the workloads they were purchased for[2]. Adding (or activating/licensing) a
general processing unit instead would get you the same "acceleration", but it
would cost more due to the way IBM structures mainframe pricing.

They know you can't use these zIIP licensed processors for general processing
tasks, so they don't charge you as much for them upfront, and they don't count
for software licensing charges in other ways.

Nothing quite like this exists in the x86 world, but it does remind me a
little of the time when AMD/Intel were selling 1/2/3 core CPUs that
technically had 2/4 cores in the package, with the extras intentionally
disabled to create CPU models for a specific market price point, or because
they didn't work properly when tested at the fab. I still have a motherboard
here that can enable the disabled cores on certain AMD processors (with a
warning in the BIOS that they may not actually work).

[1] [http://ibmdatamag.com/2013/04/performance-and-capacity-
consi...](http://ibmdatamag.com/2013/04/performance-and-capacity-
considerations-for-ziip-engines/)

[2]
[http://www.itjungle.com/big/big013106-story01.html](http://www.itjungle.com/big/big013106-story01.html)

------
Nursie
So am I allowed comments in this?

