2013-08-23 54 views
1

我想解析ruby中的多个json对象。解析Ruby中的多个JSON请求

def processKey(key) 
    obj = getJSONData(key) 
    puts "got log: " + obj.to_s + "\n" 
    @data = JSON.parse(obj) 
end 

我可以看到我从ge​​tJSONData获得obj是正确的,每次,但是JSON.parse不断回归其解析

例如第一个对象:

for key1 -> getJSONData(key1) returns obj1 -> JSON.parse(obj1) returns hash1 
for key2 -> getJSONData(key2) returns obj2 -> JSON.parse(obj2) returns hash1 
for key3 -> getJSONData(key3) returns obj3 -> JSON.parse(obj3) returns hash1 

为什么?回顾一下http://www.ruby-doc.org/stdlib-1.9.3/libdoc/json/rdoc/JSON.html和stackoverflow的例子,我没有注意到清理JSON内存或从其他exmaples需要的方法。

我在做错JSON.parse的问题? 请注意,我在导轨上使用红宝石1.9.3 - 感谢, Niru

+0

JSON不记得传入的数据,所以这个问题是在你的代码。我们需要看到更多的代码。向我们展示您传入的'key'值的定义。同时向我们显示'getJSONData'。我们不能用你给我们的小小来重复这个问题。 –

+0

不幸的是,我不能发布代码getJSONData。我唯一可以验证的是每次调用该函数都会返回正确的json输出。此外,函数实际上只有那3行代码,并且函数中没有引用全局/类变量。谢谢,我确实想确认JSON不记得传入的数据。 – Niru

回答

1

在我的代码中发现了错误。我不小心将数据保留为@data,这是不正确的,因为我已经做了一些重构。我的方法中,正确的代码应该已经:

def processKey(key) 
    obj = getJSONData(key) 
    data = JSON.parse(obj) 
    return data 
end 

由于@data不应该是一个实例变量,不应该被宣布的方式。

-Thanks, 尼汝