# File lib/json/common.rb, line 186
  def generate(obj, state = nil)
    if state
      state = State.from_state(state)
    else
      state = State.new
    end
    result = obj.to_json(state)
    if result !~ /\A\s*(?:\[.*\]|\{.*\})\s*\Z/m
      raise GeneratorError, "only generation of JSON objects or arrays allowed"
    end
    result
  end