I have a string that I want to parse in Ruby:
string = '{"desc":{"someKey":"someValue","anotherKey":"value"},"main_item":{"stats":{"a":8,"b":12,"c":10}}}'
Is there an easy way to extract the data?
I have a string that I want to parse in Ruby:
string = '{"desc":{"someKey":"someValue","anotherKey":"value"},"main_item":{"stats":{"a":8,"b":12,"c":10}}}'
Is there an easy way to extract the data?
This looks like JavaScript Object Notation (JSON). You can parse JSON that resides in some variable, e.g.
json_string
, like so:If you’re using an older Ruby, you may need to install the json gem.
There are also other implementations of JSON for Ruby that may fit some use-cases better:
As of Ruby v1.9.3 you don't need to install any Gems in order to parse JSON, simply use
require 'json'
:See JSON at Ruby-Doc.
Just to extend the answers a bit with what to do with the parsed object:
That data looks like it is in JSON format.
You can use this JSON implementation for Ruby to extract it.
It looks like a JSON string. You can use one of many JSON libraries and it's as simple as doing:
This is a bit late but I ran into something interesting that seems important to contribute.
I accidentally wrote this code, and it seems to work:
I was surprised to see it works since I am using the YAML library, but it works.
The reason why it is important is that
yaml
comes built-in with Ruby so there's no gem install.I am using versions 1.8.x and 1.9.x - so the
json
library is not built in, but it is in version 2.x.So technically - this is the easiest way to extract the data in version lower than 2.0.