def from_json(lexer)
lexer.unescape if (lexer.nextclean == '%')
lexer.back
raise "A JSON Object must begin with '{'" if (lexer.nextclean != "{")
loop {
c = lexer.nextclean
key = nil
case c
when '\0'
raise "A JSON Object must end with '}'"
when '}'
return;
else
lexer.back
key = lexer.nextvalue().to_s()
end
raise "Expected a ':' after a key" if (lexer.nextclean() != ':')
self[key] = lexer.nextvalue()
case lexer.nextclean()
when ','
return if (lexer.nextclean() == '}')
lexer.back
when '}'
return(self)
else
raise "Expected a ',' or '}'"
end
}
return(self)
end