3 ms·
Is JSON better for data? XML can be pretty powerful when used properly.
by pathartl 2y ago
Is JSON better for data? XML can be pretty powerful when used properly.
- im3w1l 2y agoYes. I think the main reason is that json maps so nicely to native types like dict, list, string and double. xml is usually deserialized to a dom object and accessing the right things is a bit more annoying and complicated. Another thing with xml is that if you give it a finger it tries to take the whole arm and guilt you into using more and more xml technologies like xsd's and dtd's and namespacing and xslt's and before you know it you are neck deep in xml arcana. Json is also more terse but that's less important.
- tyfon 2y agoAnalyst here and not an active professional programmer outside of analytics. Is there a way to specify a json schema like you do with xsd?
- jeroenhd 2y agoThere are various competing standards for describing JSON schemas. Some use separate JSON files, others put details inside the JSON files themselves. None of them are fully standardised the way JSON or XSD are, though. I've seen https://json-schema.org/ https://json-schema.org/ in use most often, but it's not directly associated with JSON and support depends on how close your software stack seems to be to Javascript frontend web development. It's still an IETF draft at the moment, and development seems to have stopped: https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01 https://datatracker.ietf.org/doc/html/draft-bhutton-json-sch... Alternatively, you could theoretically use YAML schemas to validate JSON, as standard JSON is also valid YAML.
- pathartl 2y agoI would argue that XSDs and namespacing are pretty much a necessity when you're trying to represent structured data. I agree that DTD and especially XSLT can be painful, but they're certainly more optional. Being able to generate XSD from your code and then just pass that off to someone else while remaining generally language-agnostic is extremely powerful. JSON is cheap and easy, but it's really not that great.