如何将这个数组转换成json(Ruby)?它';It’在我的节目中表现很奇怪,但在irb中效果很好

如何将这个数组转换成json(Ruby)?它';It’在我的节目中表现很奇怪,但在irb中效果很好,ruby,json,sockets,Ruby,Json,Sockets,我可以在irb中转换为json,但不能在程序中转换。例如,在irb中: require 'json' deck = %w(2 4 6 5 K) => ["2", "4", "6", "5", "K"] deck_json = deck.to_json => "[\"2\",\"4\",\"6\",\"5\",\"K\"]" # <= Great, this works, however.... 我需要把它转换成json,这样我就可以通过服务器向客户机发送一个数组。如何将其转

我可以在irb中转换为json,但不能在程序中转换。例如,在irb中:

require 'json'
deck = %w(2 4 6 5 K)
=> ["2", "4", "6", "5", "K"]
deck_json = deck.to_json
=> "[\"2\",\"4\",\"6\",\"5\",\"K\"]"  # <= Great, this works, however....

我需要把它转换成json,这样我就可以通过服务器向客户机发送一个数组。如何将其转换为json?

to_json
正在工作。您看到的对比不是由于irb与脚本,而是
p
put
或检查
“{}”
<代码>p在对象上应用
检查
,并以接近(不一定总是相同)的形式显示它在代码中的表达方式。这就是你在irb中看到的。另一方面,
放置
“#{}”
应用于对象
,使其更像您在文档中看到的普通文本。当你想看到你拥有的对象时,使用
p

它不是jason,而是json。这是我在这里写的一个输入错误。它不在我的代码中。我为您编辑了它=)。如果是在我的密码终端里,我会对我大喊大叫。代码运行时,它只是不输出json格式的数组。我不确定我是否理解这个问题。给出第一个示例,两个
put
语句应该打印相同的内容。在第一个示例中,尝试在irb中同时执行
put
,您应该会看到这一点。irb正在打印#to_json方法输出的字符串表示形式,因此您可以获得转义引号
puts
获取json结构的字符串表示,在本例中是字符串数组,并显示该字符串。谢谢sawa!成功了。我将很快运行该服务器=)
game_name.player.each do |player|
  puts "Here's the player's cards: #{player.fish_hand.player_cards}"
  puts "And here's the hand in json: #{player.fish_hand.player_cards.to_json}"

  #you can IGNORE this part below:

  #player.socket_number.puts(player.fish_hand.player_cards.to_json)
  #puts "Here's the json data? #{player.fish_hand.player_cards.to_json}"
  #cards_for_client = player.fish_hand.player_cards.to_json
  #player.socket_number.puts(cards_for_client)    #JSON DATA!
  #puts "Card for client json data: #{cards_for_client}"
end