2016-07-27 3 views
0

Ich habe ein JSON-Objekt und ich habe es mit Ruby geparst. Jetzt muss ich das JSON-Objekt mit den geänderten Werten aktualisieren. Ich muss JSON_STR mit dem neuen Wert "testing" aktualisieren. Es klingt vielleicht albern, aber ich komme nicht dazu.Update JSON String nach Ruby Parse

require 'json' 
obj = JSON.parse(JSON_STR) 
obj.each do |doc| 
    doc["ref"] = "testing" 
end 

Antwort

0

Speichern des Dokuments, das Sie als eine Konstante der beste Zug vielleicht nicht zu ändern sind versucht, macht es die Dinge komplizierter, aber es getan werden kann. Sie müssen nur den Wert der Zeichenfolge mit dem JSON serialisierte Version der geänderten Objekt neu zuzuordnen:

JSON_STR.replace(JSON.dump(obj)) 

Dies funktioniert nur, wenn JSON_STR nicht gefroren ist, und Konstanten oft sind, so achten Sie, wenn Sie Fehler erhalten.

Als eine Anmerkung obj ist ein ziemlich schrecklicher Name für Ihre Variable. Versuchen Sie zu erklären, was es ist. Selbst entries oder docs ist hier besser.