2012-02-28 2 views
0

У меня есть этот ответ от запроса JSonJson Ответ в RoR 3

{"hashtags"=>[{"text"=>"mytext", "indices"=>[0, 11]}], "urls"=>[], "user_mentions"=>[], "media"=>[{"id"=>174259745790767104, "id_str"=>"174259745790767104", "indices"=>[18, 38], "media_url"=>"http://myurl.com/AmsYUMaCMAAgjlm.jpg", "media_url_https"=>"https://myurl.com/AmsYUMaCMAAgjlm.jpg", "url"=>"http://my.com/6rSti1uE", "display_url"=>"image_url", "expanded_url"=>"http://myurl.com/dir/1", "type"=>"photo", "sizes"=>{"medium"=>{"w"=>600, "h"=>450, "resize"=>"fit"}, "large"=>{"w"=>1024, "h"=>768, "resize"=>"fit"}, "small"=>{"w"=>340, "h"=>255, "resize"=>"fit"}, "thumb"=>{"w"=>150, "h"=>150, "resize"=>"crop"}, "orig"=>{"w"=>1024, "h"=>768, "resize"=>"fit"}}}]} 

Как я могу получить значение поля media_url_https?

ответ

0

Назначают его в переменной

json = {"hashtags"=>[{"text"=>"mytext", "indices"=>[0, 11]}], "urls"=>[], "user_mentions"=>[], "media"=>[{"id"=>174259745790767104, "id_str"=>"174259745790767104", "indices"=>[18, 38], "media_url"=>"http://myurl.com/AmsYUMaCMAAgjlm.jpg", "media_url_https"=>"https://myurl.com/AmsYUMaCMAAgjlm.jpg", "url"=>"http://my.com/6rSti1uE", "display_url"=>"image_url", "expanded_url"=>"http://myurl.com/dir/1", "type"=>"photo", "sizes"=>{"medium"=>{"w"=>600, "h"=>450, "resize"=>"fit"}, "large"=>{"w"=>1024, "h"=>768, "resize"=>"fit"}, "small"=>{"w"=>340, "h"=>255, "resize"=>"fit"}, "thumb"=>{"w"=>150, "h"=>150, "resize"=>"crop"}, "orig"=>{"w"=>1024, "h"=>768, "resize"=>"fit"}}}]} 

затем

media_url_https = json["media"][0]["media_url_https"] 

должны это сделать.

+0

это то, что я делаю URL = Hash.new URL = пункт [ "Entities"] media_url_https = URL [ "медиа"] [0 ] ["media_url_https"] Rails.logger.debug media_url_https.inspect Я получаю нулевое значение, когда я этого не ожидал. Я делаю что-то неправильно? – Leon

+0

Динамически типизированный Ruby, вам не нужен первый url = Hash.new. –

+0

Я не знаю, что такое «элемент», не видя, что я не могу сказать вам, почему вы не получаете доступ к переменной, которую хотите. –

0

Сначала вы должны преобразовать его из хеша в строку json, Затем на вашей странице вы должны декодировать его с помощью javascript (jquery или ext), если вы не используете jquery или ext, вы можете декодировать его на ' eval ', тогда вы можете получить доступ к media_url_https через json.

var json = eval(yourResponse); 
var media_url_https = json['media'][0]['media_url_https']; 

Приведенный выше код должен решить ваш вопрос!

+0

Я пробовал все это, но это задача с грабли, поэтому я не могу использовать какой-либо jQuery там – Leon

Смежные вопросы