Ruby JSON pretty-printer
Ruby
Latest commit 190489c Nov 18, 2009 Guido De Rosa patch escape_json_string to make it more UTF-8-safe
Permalink
Failed to load latest commit information.
lib
spec Add spec for new Time rendering ability Aug 28, 2008
LICENSE
README.textile

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"}

Copyright 2009 Mark McGranaghan and released under an MIT license.