json(n) | JSON | json(n) |
json - JSON parser
package require Tcl 8.4
package require json ?1.1?
::json::json2dict txt
The json package provides a simple Tcl-only library for parsing the JSON http://www.json.org/ data exchange format as specified in RFC 4627 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. Either the dict package or Tcl 8.5 is required for use.
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}}
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category json of the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for either package and/or documentation.
data exchange, exchange format, javascript, json
CGI programming
Copyright (c) 2006 ActiveState Software Inc., 2009 Thomas Maeder, Glue Software Engineering AG
1.1 | json |