1

我有一些 PHP 代码查询 MySQL 数据库的计数。

通过浏览器查询时,我得到以下输出:

{"count":"123"}

我还有一个 Ruby 脚本,它通过 Net::HTTP 执行相同的 PHP 脚本,但输出不同:

{"count"=>"123"}

为什么是这样?

//The URL
uri = URI.parse("http://lab/count.php")
http = Net::HTTP.new(uri.host, uri.port)
//Request URL
request = Net::HTTP::Get.new(uri.request_uri)
//Basic authentication
request.basic_auth("user1", "secret")
response = http.request(request)
//Response
response = JSON.parse(response.body)
puts results
//Value 'count'
count = JSON.parse(response.body)[0]
puts count

谢谢。

4

1 回答 1

6

{"count"=>"123"}不是 JSON 响应。

这是哈希表的红宝石文字。

我认为您正在看到解析 JSON 的结果:

>> require 'json'
>> JSON.parse('{"count":"123"}') # => {"count"=>"123"}
>> puts JSON.dump({"count"=>"123"}) # prints => {"count":"123"}

更新对评论的回应

123打印。

uri = URI.parse("http://lab/count.php")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
request.basic_auth("user1", "secret")
response = http.request(request)
response = JSON.parse(response.body)
puts response['count']
于 2013-08-01T05:28:15.990 回答