2017-06-30 1 views
0

Ein json Feld ui_layout in postgres Tabelle muss in Rails 4.2 zu CSV exportiert werden. Die ui_layout sieht aus wie es in postgres Tabelle:Wie behalte ich JSON: in CSV-Ausgabe statt =>?

{"val":"test","val1":"test1","val2":"test2"} 

Der Exportcode lautet:

csv << obj.ui_layout 

In CSV, die ui_layout sieht aus, als:

{"val"=>"test","val1"=>"test1","val2"=>"test2"} 

Die : mit => ersetzt wurde. und dies verursacht ein Problem im folgenden Prozess. Es scheint, dass die ui_layout mit JSON.parse(value) geparst wurde, bevor sie CSV als hash zugeführt wurde. Was wir haben müssen, ist, den : in CSV Ausgang zu behalten. Gibt es einen Weg, wie wir es in Rails gut erreichen können?

Antwort

1

Sie könnten expliziter machen, indem Sie csv << obj.ui_layout.to_json tun.

EDIT: Ich möchte darauf hinweisen, dass dies nicht der effizienteste Weg ist, um damit umzugehen, was im Wesentlichen ist, dass der JSON-String in einen Hash serialisiert wird und dann der Hash zurück gedreht wird in eine JSON-Zeichenfolge. Ich habe etwas gelesen, aber ich bin mir immer noch nicht sicher, wie ich es machen soll, so dass ROR dieses Feld nicht serialisiert. Wenn Sie das herausfinden könnten (oder wenn jemand mit mehr Wissen kommentieren würde), wäre es effizienter und somit schneller.

Verwandte Themen