【发布时间】:2016-07-27 03:09:30
【问题描述】:
我有一个 JSON 对象,我已经用 ruby 解析了它。现在我需要用更改后的值更新 JSON 对象。我需要用新值“testing”更新 JSON_STR。这听起来可能很愚蠢,但我不会这样做。
require 'json'
obj = JSON.parse(JSON_STR)
obj.each do |doc|
doc["ref"] = "testing"
end
【问题讨论】:
我有一个 JSON 对象,我已经用 ruby 解析了它。现在我需要用更改后的值更新 JSON 对象。我需要用新值“testing”更新 JSON_STR。这听起来可能很愚蠢,但我不会这样做。
require 'json'
obj = JSON.parse(JSON_STR)
obj.each do |doc|
doc["ref"] = "testing"
end
【问题讨论】:
将您尝试修改的文档存储为常量可能不是最好的做法,它会使事情变得更复杂,但可以做到。您只需要使用修改后对象的 JSON 序列化版本重新分配字符串的值:
JSON_STR.replace(JSON.dump(obj))
这只有在 JSON_STR 没有被冻结的情况下才有效,而且常量经常被冻结,所以当心你是否得到错误。
作为注释obj 是一个非常糟糕的变量名称。试着解释它是什么。甚至entries 或docs 都在这里更好。
【讨论】: