我遇到了“to_json”方法的一个奇怪的问题:它随机地将意外的空格或未编码的字符添加到我的JSON数组中。 IE:
[{
"foo" : "bar",
"valid": tr ue,
"bar" : "foo&qu ot;
}]
在某些情况下,它只是在我不希望的地方添加一个空格,而在其他情况下,它会在非标准字符中添加一个空格。
我试着谷歌这个,但我没有发现任何类似的问题。
此外,它似乎截断了一些长JSON对象,显然当对象长度在65'000到70'000之间时。
编辑:这是我的控制器的代码
class CalendarController < PrivateController
require 'open-uri'
require 'json'
def index
respond_to do |format|
format.html { }
format.json { render :text => self.generate_json }
end
end
def generate_json
feed = []
feed = feed.concat(read_and_parse(schedules_url(:format => :json, :start => params[:start], :end => params[:end], "_" => params["_"])))
feed = feed.concat(read_and_parse(events_url(:format => :json, :start => params[:start], :end => params[:end], "_" => params["_"])))
feed.to_json
end
private
def read_and_parse(url)
file = open(url).read
feed = JSON.parse(file)
return feed
end
end