summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Frank <flori@ping.de>2017-05-31 18:48:17 +0200
committerGitHub <noreply@github.com>2017-05-31 18:48:17 +0200
commit3d69dad9142bfa9678d590e0842f8d8c880c2ec5 (patch)
tree4e3dc2fd337857ba4f90d6eec13b88d889179c7b
parent950440a187ad0b0b25706ed199018ede5203a396 (diff)
parentdb200469d3e6a74a508cefe62638e601149f1032 (diff)
downloadjson-3d69dad9142bfa9678d590e0842f8d8c880c2ec5.tar.gz
Merge pull request #330 from perlun/patch-1
README: Fixed code examples to start in the left-most column
-rw-r--r--README.md38
1 files changed, 21 insertions, 17 deletions
diff --git a/README.md b/README.md
index 7d5b156..45e1348 100644
--- a/README.md
+++ b/README.md
@@ -179,14 +179,14 @@ should return a JSON object (a hash converted to JSON with `#to_json`) like
this (don't forget the `*a` for all the arguments):
```ruby
- class Range
- def to_json(*a)
- {
- 'json_class' => self.class.name, # = 'Range'
- 'data' => [ first, last, exclude_end? ]
- }.to_json(*a)
- end
- end
+class Range
+ def to_json(*a)
+ {
+ 'json_class' => self.class.name, # = 'Range'
+ 'data' => [ first, last, exclude_end? ]
+ }.to_json(*a)
+ end
+end
```
The hash key `json_class` is the class, that will be asked to deserialise the
@@ -200,20 +200,24 @@ called with the JSON object converted to a Ruby hash. So a range can
be deserialised by implementing `Range.json_create` like this:
```ruby
- class Range
- def self.json_create(o)
- new(*o['data'])
- end
- end
+class Range
+ def self.json_create(o)
+ new(*o['data'])
+ end
+end
```
Now it possible to serialise/deserialise ranges as well:
```ruby
- json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
- # => "[1,2,{\"a\":3.141},false,true,null,{\"json_class\":\"Range\",\"data\":[4,10,false]}]"
- JSON.parse json, :create_additions => true
- # => [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
+json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
+# => "[1,2,{\"a\":3.141},false,true,null,{\"json_class\":\"Range\",\"data\":[4,10,false]}]"
+JSON.parse json
+# => [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
+json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
+# => "[1,2,{\"a\":3.141},false,true,null,{\"json_class\":\"Range\",\"data\":[4,10,false]}]"
+JSON.parse json, :create_additions => true
+# => [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
```
`JSON.generate` always creates the shortest possible string representation of a