under-os/under-os

View on GitHub
gems/under-os-core/lib/core/json.rb

Summary

Maintainability
A
0 mins
Test Coverage
class JSON
  class Malformed < StandardError ; end

  def self.parse(string, encoding=nil)
    error = Pointer.new(:object)
    data  = NSJSONSerialization.JSONObjectWithData string.to_data(encoding), options:0, error:error

    if error[0]
      raise Malformed
    else
      data
    end
  end

  def self.generate(object, pretty=false)
    options = pretty ? NSJSONWritingPrettyPrinted : 0
    NSJSONSerialization.dataWithJSONObject(object, options:options, error:nil).to_s
  end
end