<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://fileformats.archiveteam.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://fileformats.archiveteam.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Paulehoffman</id>
		<title>Just Solve the File Format Problem - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://fileformats.archiveteam.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Paulehoffman"/>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Special:Contributions/Paulehoffman"/>
		<updated>2026-09-14T21:50:06Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/JSON</id>
		<title>JSON</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/JSON"/>
				<updated>2023-12-09T00:07:11Z</updated>
		
		<summary type="html">&lt;p&gt;Paulehoffman: Said where I-JSON came from&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Serialization&lt;br /&gt;
|thiscat=JSON&lt;br /&gt;
|extensions={{ext|json}}&lt;br /&gt;
|mimetypes={{mimetype|application/json}}&lt;br /&gt;
|pronom={{PRONOM|fmt/817}}&lt;br /&gt;
|locfdd={{LoCFDD|fdd000381}}&lt;br /&gt;
|wikidata={{wikidata|Q2063}}&lt;br /&gt;
}}&lt;br /&gt;
'''JSON''' (JavaScript Object Notation) is widely used by web applications, APIs, mobile apps, and other programs to communicate between different systems (such as between a client and server), and as a save format for data storage. While it is named after [[JavaScript]], there are libraries for many other programming and scripting languages to let them use this format as well. It is used as the basis of a number of specialized formats; the geospatial format [[GeoJSON]] is based on JSON, as is the remote-procedure-call protocol [[JSON-RPC]] and the [[JSON-LD]] linked-data format. The IBM standard of [[JSONx]] is an [[XML]] implementation of JSON. [[I-JSON]] is a restricted profile of JSON for Internet use developed by the IETF. [[JSON Web Tokens]], [[JSON Web Encryption]], and [[JSON Web Signatures]] are JSON-based formats for security-related functions.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
JSON is a very simply-defined format for representing data in text-based form using a few simple types, including two &amp;quot;compound types&amp;quot; which can be nested:&lt;br /&gt;
&lt;br /&gt;
* '''number''': A decimal number, optionally including a decimal point or exponential notation. Leading zeroes are not allowed unless the only number before the decimal point is a single zero, or the number is equal to zero. (Other formats and programming languages may call these ''int'', ''float'', ''double'', ''long'', etc.)&lt;br /&gt;
&lt;br /&gt;
* '''string''': A string of ([[Unicode]]) characters surrounded by double quotes (&amp;quot;). The only characters not allowed directly (without escaping) are double quotes, backslashes, or control characters; a backslash can be used to precede a quote or backslash used as a character within the string, as well as \b for backspace, \f for formfeed, \n for newline, \r for carriage return, \t for tab, and \u followed by 4 hexadecimal digits for encoding any Unicode character in the 0000-FFFF range. (Other formats and programming languages may call these ''string'' or ''array of char'').&lt;br /&gt;
&lt;br /&gt;
* ''true'', ''false'', or ''nil'' are permitted as typeless values. (Other formats and programming languages may put these into boolean or pointer types.)&lt;br /&gt;
&lt;br /&gt;
* '''object''': An associative array consisting of names and values, where the name and value are separated by a colon (:), the name/value pairs are separated by commas, and the whole object is surrounded by curly braces {}. The name is a (double-quoted) string, and the value can be any of the data types in JSON including another object. There is no inherent ordering to the values of an object. (Other formats and programming languages may call these ''associative arrays'', ''hashes'', ''maps'', or ''dictionaries''.)&lt;br /&gt;
&lt;br /&gt;
* '''array''': An ordered collection of values, which can each be any of the JSON data types, and are separated by commas and surrounded by square brackets []. (Other formats and programming languages may call these ''arrays'', ''collections'', or ''lists''.)&lt;br /&gt;
&lt;br /&gt;
== JSONP ==&lt;br /&gt;
&lt;br /&gt;
'''JSONP''' is a variant of JSON, &amp;quot;padded&amp;quot; with additional [[JavaScript]] code to permit the entire data set to be a valid piece of JS code able to be imported via a &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; statement for execution. Generally the extra code will be a function call encompassing the JSON data as its parameter, but sometimes it will be a variable assignment or other code. This gets around security restrictions in browser implementations of JavaScript which limit use of external data loaded from other sites (script statements can reference outside URLs), making it both very powerful and very dangerous if misused.&lt;br /&gt;
&lt;br /&gt;
Largely, JSONP has been superseded by the wider browser support for JSON and introduction of [https://en.wikipedia.org/wiki/JSONP CORS].&lt;br /&gt;
&lt;br /&gt;
== JSON Pointer ==&lt;br /&gt;
&lt;br /&gt;
JSON Pointer (described in RFC 6901) is a syntax for referencing a specific value within a JSON document. It consists of a string with hierarchical elements separated by slashes (/), each element being a reference to an element of the JSON document (e.g., the label name of an object element or the numerical index of an array element). Thus, &amp;quot;/foo/0&amp;quot; represents the first (zeroth) element of the array which is at the label &amp;quot;foo&amp;quot; of a parent object. Escape sequences ~1 and ~0 are used to represent a slash (/) and a tilde (~) respectively, with ~1 being processed first to avoid misparsing strings with &amp;quot;~01&amp;quot; (which represents &amp;quot;~1&amp;quot;, not &amp;quot;/&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[CoffeeScript-Object-Notation]]&lt;br /&gt;
* [[Cursive Script Object Notation]]&lt;br /&gt;
* [[GeoJSON]]&lt;br /&gt;
* [[Hjson]]&lt;br /&gt;
* [[I-JSON]]&lt;br /&gt;
* [[JMESPath]] [http://jmespath.org/]&lt;br /&gt;
* [[JSON API]]&lt;br /&gt;
* [[JSONata]]&lt;br /&gt;
* [[JSON-LD]]&lt;br /&gt;
* [[Jsonnet]]&lt;br /&gt;
* [[JSON Merge Patch]] (RFC 7396)&lt;br /&gt;
* [[JSON Patch]]&lt;br /&gt;
* [[JSON Pointer]] (RFC 6901)&lt;br /&gt;
* [[JSON-RPC]]&lt;br /&gt;
* [[JSON Table Schema]]&lt;br /&gt;
* [[JSON Type Definition]]&lt;br /&gt;
* [[JSONx]]&lt;br /&gt;
For formats based on JSON, see [[:Category:JSON based file formats]].&lt;br /&gt;
&lt;br /&gt;
== Specs and schemas ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.json.org/ Official website] (includes spec and links to libraries in many languages)&lt;br /&gt;
* [http://json-schema.org/ JSON Schema]&lt;br /&gt;
* [http://www.ecma-international.org/publications/standards/Ecma-404.htm ECMA-404]&lt;br /&gt;
* RFC 4627&lt;br /&gt;
&lt;br /&gt;
== Sample data ==&lt;br /&gt;
&lt;br /&gt;
* [http://parltrack.euwiki.org/dumps/ Data from European Parliament in JSON form] (Source: [http://parltrack.euwiki.org/ ParlTrack])&lt;br /&gt;
&lt;br /&gt;
== Utilities ==&lt;br /&gt;
&lt;br /&gt;
* [http://pro.jsonlint.com/ Linter/Validator]&lt;br /&gt;
* [http://www.pal-blog.de/entwicklung/perl/2013/quick-json-pretty-reformatter-json-tidy.html Quick JSON pretty reformatter / JSON-tidy]&lt;br /&gt;
* [https://github.com/ChimeraCoder/gojson gojson: A simple command-line tool for manipulating JSON for use in developing Go code] (generates [[Go]] structures from JSON)&lt;br /&gt;
* [http://golang.org/pkg/encoding/json/ Go package to encode/decode JSON]&lt;br /&gt;
* [http://stedolan.github.io/jq/ jq: command line JSON processor]&lt;br /&gt;
* [http://papaparse.com/ PapaParse: in-browser conversions between CSV and JSON]&lt;br /&gt;
* [http://textract.readthedocs.org/en/latest/ Textract: extract text from various document formats including JSON]&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:JSON|Wikipedia: JSON]]&lt;br /&gt;
* [[Wikipedia:JSONP|Wikipedia: JSONP]]&lt;br /&gt;
* [http://www.infoq.com/news/2013/04/JSON-Validation?utm_medium=referral&amp;amp;utm_source=t.co JSON Validation Roundup]&lt;br /&gt;
* [http://stackoverflow.com/questions/2669690/why-does-google-prepend-while1-to-their-json-responses Why does Google prepend while(1); to their JSON responses?]&lt;br /&gt;
* [http://www.w3.org/TR/csv2json/ Generating JSON from tabular data on the Web (W3C)]&lt;br /&gt;
* [http://seriot.ch/parsing_json.html Parsing JSON is a Minefield] - in test with 30 JSON parsers no two parsers showed the same behaviour&lt;br /&gt;
* [https://apifriends.com/api-management/why-json-won-over-xml/ Why JSON won over XML]&lt;br /&gt;
&lt;br /&gt;
[[Category:Metaformats]]&lt;br /&gt;
[[Category:JSON based file formats]]&lt;/div&gt;</summary>
		<author><name>Paulehoffman</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Serialization</id>
		<title>Serialization</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Serialization"/>
				<updated>2023-12-09T00:05:59Z</updated>
		
		<summary type="html">&lt;p&gt;Paulehoffman: Updated RFC for CBOR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|thiscat=Serialization&lt;br /&gt;
|image=cereal_loops.jpg&lt;br /&gt;
|caption=No, I said ''serial'', idiot.&lt;br /&gt;
}}&lt;br /&gt;
'''Serialization''' is used to transform data structures (as used within a program, in whatever native formats might be used by the programming language the program is in) into a file or data stream of standardized format to be saved for later use, or transmitted through a network to be used by a different program elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Serialization formats ==&lt;br /&gt;
* [[Avro]]&lt;br /&gt;
* [[Bebop]] [https://rainway.com/blog/2020/12/09/bebop-an-efficient-schema-based-binary-serialization-format/]&lt;br /&gt;
* [[Bencode]] (used by BitTorrent)&lt;br /&gt;
* [[BSON]]&lt;br /&gt;
* [[Cap'n Proto]]&lt;br /&gt;
* [[CBOR]] ([https://datatracker.ietf.org/doc/rfc8949/ RFC 8949]) ([http://cbor.io/ CBOR description])&lt;br /&gt;
* [[CoffeeScript-Object-Notation]] (CSON)&lt;br /&gt;
* [[Concise Encoding]] [https://concise-encoding.org/]&lt;br /&gt;
* [[Cursive Script Object Notation]]&lt;br /&gt;
* [[DER]] (Distinguished Encoding Rules)&lt;br /&gt;
* [[FDF]]&lt;br /&gt;
* [[FlatBuffers]]&lt;br /&gt;
* [[Form URL encoding]] (application/x-www-form-urlencoded)&lt;br /&gt;
* [[Hjson]]&lt;br /&gt;
* [[I-JSON]]&lt;br /&gt;
* [[Ion]] [https://amznlabs.github.io/ion-docs/]&lt;br /&gt;
* [[IWA]] (Apple iWork serialization; .iwa)&lt;br /&gt;
* [[Java Object Serialization]]&lt;br /&gt;
* [[JSON]] (.json)&lt;br /&gt;
* [[JSON5]] (.json5) [http://json5.org/]&lt;br /&gt;
* [[JSONH]] [https://github.com/WebReflection/JSONH]&lt;br /&gt;
* [[JSONx]]&lt;br /&gt;
* [[LCON]] [https://github.com/ar-nelson/lcon]&lt;br /&gt;
* [[MessagePack]] [http://msgpack.org/index.html]&lt;br /&gt;
* [[Microsoft XNA Compiled Format]] (.xnb)&lt;br /&gt;
* [[Minecraft NBT format]]&lt;br /&gt;
* [[Multipart/Form-Data]]&lt;br /&gt;
* [[OLE Property Set]]&lt;br /&gt;
* [[Pickle]] (Python)&lt;br /&gt;
* [[PostScript binary object format]]&lt;br /&gt;
* [[Property List]] (.plist)&lt;br /&gt;
* [[Protobuf]] (Protocol Buffers; a Google format also used within IWA)&lt;br /&gt;
* [[RELOAD]]&lt;br /&gt;
* [[Simple Binary Encoding]]&lt;br /&gt;
** [[SBE Intermediate Representation]]&lt;br /&gt;
* Thrift&lt;br /&gt;
** [[Thrift binary protocol]]&lt;br /&gt;
** [[Thrift compact protocol]]&lt;br /&gt;
* [[Transit]] [https://github.com/cognitect/transit-format]&lt;br /&gt;
* [[UXF (Uniform Exchange Format)]] [https://github.com/mark-summerfield/uxf]&lt;br /&gt;
* [[XFDF]]&lt;br /&gt;
* [[XML]] (originally intended only as a markup format, but ended up as probably the most popular serialization format)&lt;br /&gt;
* [[YAML]] (.yaml)&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous related things ==&lt;br /&gt;
* [[EDI]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Databases]]&lt;br /&gt;
* [[Markup]]&lt;br /&gt;
* [[Metaformats]]&lt;br /&gt;
* [[Protocols]]&lt;br /&gt;
* [[Text-based data]]&lt;br /&gt;
* [[Transfer Encodings]]&lt;/div&gt;</summary>
		<author><name>Paulehoffman</name></author>	</entry>

	</feed>