2
я получаю ошибку с этим кодом:Невозможно разобрать JSON из-за невидимых символов
require 'net/http'
require 'rubygems'
require 'json'
puts "test1:"
url = "http://thomas.joulin.eu/a.json"
resp = Net::HTTP.get_response(URI.parse(url))
data = resp.body
result = JSON.parse(data)
puts result
puts "test2:"
url = "http://thomas.joulin.eu/b.json"
resp = Net::HTTP.get_response(URI.parse(url))
data = resp.body
result = JSON.parse(data)
puts result
Ответ:
test1:
{"k"=>"v"}
test2:
(JSON::ParserError).0.0/gems/json-1.8.1/lib/json/common.rb:155:in `parse': 757: unexpected token at '{ "k": "v" }
'
from /Library/Ruby/Gems/2.0.0/gems/json-1.8.1/lib/json/common.rb:155:in `parse'
from test.rb:16:in `<main>'
Я уверен, что это из-за невидимых chacters, но strip
или delete!("\r")
не помогло.
cat -e a.json
{ "k": "v" }%
cat -e b.json
{ "k": "v" }^M$
Я ожидаю, что латинские символы, такие как "é" или "N", так что я использовал свой второй вариант, работает отлично: 'данные = resp.body.force_encoding ("UTF-8") данных .gsub! ("\ XEF \ Xbb \ XBF ".force_encoding (" UTF-8 "), '')' –
Спасибо. Это касается и моей проблемы. – MKumar