Удалить обратную косую черту в строке - PullRequest
1 голос
/ 02 марта 2012

Я запрашиваю данные пользователя в Facebook после получения токена.Я получил следующий ответ.Ответ следующий:

"{\"id\":\"xxxxx\",\"name\":\"abcd\",\"first_name\":\"ab\",\"last_name\":\"cd\",
\"link\":\"http:\\/\\/www.facebook.com\\/profile.php?id=xxxxx\",\"quotes\":\"Life is a difficult game. You can win it only by retaining your birthright to be a person.\",\"gender\":\"female\",\"timezone\":5.5,\"locale\":\"en_US\",\"verified\":true,\"updated_time\":\"2012-02-22T12:59:39+0000\"}"

Я напечатал класс ответа, показав "String".Я хочу изменить это в хэш.(Я хочу удалить \ в приведенном выше).

Я пытался, но не получил правильный формат.

Ответы [ 2 ]

8 голосов
/ 02 марта 2012

Это JSON. Вам просто нужно разобрать его.

require 'json'

JSON.parse("{\"id\":\"xxxxx\",\"name\":\"abcd\",\"first_name\":\"ab\",\"last_name\":\"cd\",
\"link\":\"http:\\/\\/www.facebook.com\\/profile.php?id=xxxxx\",\"quotes\":\"Life is a difficult game. You can win it only by retaining your birthright to be a person.\",\"gender\":\"female\",\"timezone\":5.5,\"locale\":\"en_US\",\"verified\":true,\"updated_time\":\"2012-02-22T12:59:39+0000\"}")

#=> {"id"=>"xxxxx", "name"=>"abcd", "first_name"=>"ab", "last_name"=>"cd", "link"=>"http://www.facebook.com/profile.php?id=xxxxx", "quotes"=>"Life is a difficult game. You can win it only by retaining your birthright to be a person.", "gender"=>"female", "timezone"=>5.5, "locale"=>"en_US", "verified"=>true, "updated_time"=>"2012-02-22T12:59:39+0000"} 
4 голосов
/ 02 марта 2012

Ответ, который вы получите, является объектом JSON.Самый простой способ разобрать это в хеш - использовать гем JSON.Вот пример с несколькими первыми объектами в вашей строке.Как видите, он просто возвращает хеш.

ruby-1.9.3-rc1 :001 > require 'json'
 => true 
ruby-1.9.3-rc1 :002 > JSON.parse("{\"id\":\"xxxxx\",\"name\":\"abcd\",\"first_name\":\"ab\"}")
 => {"id"=>"xxxxx", "name"=>"abcd", "first_name"=>"ab"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...