Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
JSON document builder
Ruby
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
Gemfile
LICENSE
README.md
Rakefile
jsonit.gemspec

README.md

NOTE: Jsonit is no longer maintained. We recommend you use Jbuilder instead. It offers similar functionality.

Jsonit

Jsonit provides a way to quickly construct handcrafted json documents. Jsonit requires objects to respond to #to_json. It will attempt to load the json gem if this is not the case.

Installation

gem install jsonit

Usage

require 'json'    # Jsonit expects a #to_json method on object.
require 'jsonit'

# a simple object
Jsonit::Builder.new do |json|
  json.foo "bar"
end.to_json #=> {"foo":"bar"}

# nested object
Jsonit::Builder.new do |json|
  json.foo do
    json.bar "baz"
  end

  json.alpha do
    json.bravo do
      json.charlie "delta"
    end
  end
end.to_json #=> {"foo":{"bar":"baz"},"alpha":{"bravo":{"charlie":"delta"}}}

# arrays
Jsonit::Builder.new do |json|
  json.first [1, 2, 3]

  json.second [1, 2, 3] do |itm|
    json.value itm
  end
end.to_json #=> {"first":[1, 2, 3],"second":[{"value":1},{"value":2},{"value":3}]}

Rails 3

Jsonit can be used with rails 3.

In app/helpers/photos_helper.rb

class PhotosHelper
  def photos
    Photo.all
  end
end

In app/controllers/photos_controller.rb

class PhotosController < ApplicationController
  respond_to :json
end

In app/views/photos/index.json.jsonit

json.ok true
json.data photos do |photo|
  photo.title    photo.title
  photo.location url_for(photo)
end

Result will be something like:

{
  "ok": true,
  "data": [
        {
          "title": "My First Photo",
          "location": "http://www.example.com/photos/1.json"
        }
  ]
}

Sinatra

Jsonit can be used with Sinatra.

In your Gemfile:

gem 'json'
gem 'jsonit'

In views/index.jsonit:

json.foo "bar"

In your app:

class App < Sinatra::Base
  get "/" do
    jsonit :index
  end
end

Padrino

Jsonit can be used with Padrino.

In your Gemfile:

gem 'json'
gem 'jsonit'

In app/views/photos/index.json.jsonit:

json.photos photos do |photo|
  json.title    photo.title
  json.location url_for(:photos, :show, :photo_id => photo.id)
end

In your controller:

MyApp.controllers :photos do
  helpers do
    def photos
      Photos.all
    end
  end

  get :index, :provides => :json do
    render :'photos/index'
  end

  get :show, :with => :photo_id, :provides => :json do
    render :'photos/show'
  end
end

Project status

Jsonit is currently under active development.

LICENSE

Json is Copyright (c) 2011 Voormedia B.V. and distributed under the MIT license. See the LICENSE file for more info.

Something went wrong with that request. Please try again.