[//000000001]: # (json \- JSON) [//000000002]: # (Generated from file 'json\.man' by tcllib/doctools with format 'markdown') [//000000003]: # (Copyright © 2006 ActiveState Software Inc\.) [//000000004]: # (Copyright © 2009 Thomas Maeder, Glue Software Engineering AG) [//000000005]: # (json\(n\) 1\.3\.4 tcllib "JSON")
[ Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]
# NAME json \- JSON parser # Table Of Contents - [Table Of Contents](#toc) - [Synopsis](#synopsis) - [Description](#section1) - [COMMANDS](#section2) - [EXAMPLES](#section3) - [RELATED](#section4) - [Bugs, Ideas, Feedback](#section5) - [Keywords](#keywords) - [Category](#category) - [Copyright](#copyright) # SYNOPSIS package require Tcl 8\.4 package require json ?1\.3\.4? [__::json::json2dict__ *txt*](#1) [__::json::many\-json2dict__ *txt* ?*max*?](#2) # DESCRIPTION The __json__ package provides a simple Tcl\-only library for parsing the JSON [http://www\.json\.org/](http://www\.json\.org/) data exchange format as specified in RFC 4627 [http://www\.ietf\.org/rfc/rfc4627\.txt](http://www\.ietf\.org/rfc/rfc4627\.txt)\. There is some ambiguity in parsing JSON because JSON has type information that is not maintained by the Tcl conversion\. The __json__ package returns data as a Tcl __[dict](\.\./\.\./\.\./\.\./index\.md\#dict)__\. Either the __[dict](\.\./\.\./\.\./\.\./index\.md\#dict)__ package or Tcl 8\.5 is required for use\. # COMMANDS - __::json::json2dict__ *txt* Parse JSON formatted text *txt* into a Tcl dict and return the value\. If *txt* contains more than one JSON entity only the first one is returned\. - __::json::many\-json2dict__ *txt* ?*max*? Parse JSON formatted text *txt* containing multiple JSON entities into a list of dictionaries and return that list\. If *max* is specified exactly that many entities are extracted from *txt*\. By default the command will attempt to extract all, without limits\. A value of "*max* == 0" does not make sense and will cause the command to throw an error\. # EXAMPLES An example of a JSON array converted to Tcl\. A JSON array is returned as a single item with multiple elements\. [ { "precision": "zip", "Latitude": 37.7668, "Longitude": -122.3959, "Address": "", "City": "SAN FRANCISCO", "State": "CA", "Zip": "94107", "Country": "US" }, { "precision": "zip", "Latitude": 37.371991, "Longitude": -122.026020, "Address": "", "City": "SUNNYVALE", "State": "CA", "Zip": "94085", "Country": "US" } ] => {Country US Latitude 37.7668 precision zip State CA City {SAN FRANCISCO} Address {} Zip 94107 Longitude -122.3959} {Country US Latitude 37.371991 precision zip State CA City SUNNYVALE Address {} Zip 94085 Longitude -122.026020} An example of a JSON object converted to Tcl\. A JSON object is returned as a multi\-element list \(a dict\)\. { "Image": { "Width": 800, "Height": 600, "Title": "View from 15th Floor", "Thumbnail": { "Url": "http://www.example.com/image/481989943", "Height": 125, "Width": "100" }, "IDs": [116, 943, 234, 38793] } } => Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}} # RELATED To write json, instead of parsing it, see package __[json::write](json\_write\.md)__\. # Bugs, Ideas, Feedback This document, and the package it describes, will undoubtedly contain bugs and other problems\. Please report such in the category *json* of the [Tcllib Trackers](http://core\.tcl\.tk/tcllib/reportlist)\. Please also report any ideas for enhancements you may have for either package and/or documentation\. When proposing code changes, please provide *unified diffs*, i\.e the output of __diff \-u__\. Note further that *attachments* are strongly preferred over inlined patches\. Attachments can be made by going to the __Edit__ form of the ticket immediately after its creation, and then using the left\-most button in the secondary navigation bar\. # KEYWORDS [data exchange](\.\./\.\./\.\./\.\./index\.md\#data\_exchange), [exchange format](\.\./\.\./\.\./\.\./index\.md\#exchange\_format), [javascript](\.\./\.\./\.\./\.\./index\.md\#javascript), [json](\.\./\.\./\.\./\.\./index\.md\#json) # CATEGORY CGI programming # COPYRIGHT Copyright © 2006 ActiveState Software Inc\. Copyright © 2009 Thomas Maeder, Glue Software Engineering AG