一つはRuby classです:
ウィキペディアから:他のJSON object
In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).
:
JSON: JavaScript Object Notation.
JSON is a syntax for storing and exchanging data.
JSON is an easier-to-use alternative to XML.
だから、これは通常のサーバーからデータを提供するためによく知られた問題であり、 Webブラウザを使用する場合は、DAataのJSON表現を送信します。通常は、このデータを解析してサーバーで作業するために、Rubyオブジェクトに渡します。あなたは単に、あなたが文字列を解析することはできません、オブジェクト、このためには、あなたがクラス内
irb(main):046:0> JSON.pretty_generate("calimero")
JSON::GeneratorError: only generation of JSON objects or arrays allowed
from /Users/toni/.rvm/gems/[email protected]/gems/json-1.8.3/lib/json/common.rb:285:in `generate'
from /Users/toni/.rvm/gems/[email protected]/gems/json-1.8.3/lib/json/common.rb:285:in `pretty_generate'
from (irb):59
from /Users/toni/.rvm/rubies/ruby-2.2.3/bin/irb:11:in `<main>'
irb(main):060:0> JSON.pretty_generate([1,2,3])
=> "[\n 1,\n 2,\n 3\n]"
の方法のto_jsonを追加することができJSONに解析することができます
http://apidock.com/ruby/JSON/pretty_generate
:
エラーに私はVirtusの宝石を使用することをお勧めします。これはオブジェクトのタイプをJSONに解析することを明確にしています。私にとってJSONに変換するものは何ですか、またどのデータを期待しているのかを知る良い方法です
require 'virtus'
require 'json'
class A
include Virtus.model
attr_accessor :a, :b, :c
attribute :a, Integer
attribute :b, String
attribute :c, Array[Integer]
def initialize(a, b, c)
@a = a, @b = b, @c = c
end
end
irb(main):039:0> a = A.new(1, "a", [1, 2, 3])
=> #<A:0x007fc391882ac8 @b="a", @c=[1, 2, 3], @a=[1, "a", [1, 2, 3]]>
irb(main):040:0> a.attributes
=> {:a=>[1, "a", [1, 2, 3]], :b=>"a", :c=>[1, 2, 3]}
irb(main):053:0> require 'json'
=> true
irb(main):085:0> a.attributes.to_json
=> "{\"a\":[1,\"a\",[1,2,3]],\"b\":\"a\",\"c\":[1,2,3]}"
irb(main):096:0>
*データ*あり*コード*があります。 JSONはデータを交換する形式ですが、クラスはコードです。 – Stefan
あなたは「クラス」と言うとき、「クラスのインスタンス」を意味しますか? –
はい、クラスのインスタンスを意味します。 –