public
Description: Ruby JSON pretty-printer
Homepage:
Clone URL: git://github.com/techcrunch/json_printer.git
mmcgrana (author)
Thu Aug 28 12:22:55 -0700 2008
commit  f5c73dec02851987a756e3b772d8756c0466521c
tree    d3945bc45b37cad40b06f30e980f594b0887ff0c
parent  fe7905772de8aabeb633ebbca19e35b56e8d691d
name age message
file README.textile Loading commit data...
directory lib/
directory spec/
README.textile

JsonPrinter allows you to convert arbitrarily nested Ruby data structures into
human-and-machine-readable JSON output. The input data can be any combination
of arrays, hashes, symbols, strings, numbers, times, and false, true, and nil values.


  data = 
   {"attribute" => "value",
    "blank" => nil,
    "list" => 
      [true,
       2,
       "elem_number_three"],
    "nested_hash" =>
      {"key" => 7,
       "other_key" => 13.5}}
  
  JsonPrinter.render(data)
  #=>
  {"nested_hash":
   {"other_key": 13.5,
    "key": 7},
   "list":
    [true,
     2,
     "elem_number_three"],
   "blank": null,
   "attribute": "value"}

  JSON.parse(JsonPrinter.render(data)) == data
  #=> true

The printer recognizes instances of ActiveSupport::OrderedHash or other Hash-like objects responding to #keys and will render their attributes in order:


  data = 
    ActiveSupport::OrderedHash.new(
      [["foo", "bar"], ["biz", "bat"], ["cat", "hat"]])
      
  JsonPrinter.render(data)
  #=>
  {"foo": "bar",
   "biz": "bat",
   "cat", "hat"}