<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: serialization</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/serialization.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2020-01-07T20:35:22+00:00</updated><author><name>Simon Willison</name></author><entry><title>Better Python Object Serialization</title><link href="https://simonwillison.net/2020/Jan/7/better-python-object-serialization/#atom-tag" rel="alternate"/><published>2020-01-07T20:35:22+00:00</published><updated>2020-01-07T20:35:22+00:00</updated><id>https://simonwillison.net/2020/Jan/7/better-python-object-serialization/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://hynek.me/articles/serialization/"&gt;Better Python Object Serialization&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
TIL about functions.singledispatch, a decorator which makes it easy to create Python functions with implementations that vary based on the type of their arguments and which can have additional implementations registered after the fact—great for things like custom JSON serialization.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/functional-programming"&gt;functional-programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/serialization"&gt;serialization&lt;/a&gt;&lt;/p&gt;



</summary><category term="functional-programming"/><category term="json"/><category term="python"/><category term="serialization"/></entry><entry><title>The MessagePack Project</title><link href="https://simonwillison.net/2010/Apr/21/messagepack/#atom-tag" rel="alternate"/><published>2010-04-21T22:55:15+00:00</published><updated>2010-04-21T22:55:15+00:00</updated><id>https://simonwillison.net/2010/Apr/21/messagepack/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://msgpack.sourceforge.net/"&gt;The MessagePack Project&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A cross-language efficient binary-based serialization library—“It’s like JSON, but very fast and small”. Claims to outperform protocol buffers for at least some benchmarks.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/messagepack"&gt;messagepack&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/protocolbuffers"&gt;protocolbuffers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/serialization"&gt;serialization&lt;/a&gt;&lt;/p&gt;



</summary><category term="json"/><category term="messagepack"/><category term="protocolbuffers"/><category term="serialization"/></entry><entry><title>JsonML (JSON Markup Language)</title><link href="https://simonwillison.net/2009/Feb/10/jsonml/#atom-tag" rel="alternate"/><published>2009-02-10T15:03:21+00:00</published><updated>2009-02-10T15:03:21+00:00</updated><id>https://simonwillison.net/2009/Feb/10/jsonml/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://jsonml.org/"&gt;JsonML (JSON Markup Language)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
An almost non-lossy serialization format for sending XML as JSON (plain text in between elements is ignored). Uses the (element-name, attribute-dictionary, list-of-children) tuple format, which sadly means many common cases end up taking more bytes than the original XML. Still an improvement on serializations that behave differently when a list of children has only one item in it.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsonml"&gt;jsonml&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/serialization"&gt;serialization&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xml"&gt;xml&lt;/a&gt;&lt;/p&gt;



</summary><category term="json"/><category term="jsonml"/><category term="serialization"/><category term="xml"/></entry></feed>