Wie serialisiere ich ein Array und deserialisiere es von einem String? Ich habe versucht, den folgenden Code, aber es gibt nicht wirklich das ursprüngliche Array von Ganzzahlen, sondern für das Array von Zeichenfolgen.Serialisieren eines Arrays und Deserialisieren Zurück
x = [1,2,3].join(',') # maybe this is not the correct way to serialize to string?
=> '1,2,3'
x = x.split(',')
=> [ '1', '2', '3' ]
Gibt es eine Möglichkeit, es wieder auf ganze Zahlen zu erhalten, ohne die .collect{ |x| x.to_i }
zu haben?
Was ist gefährlich beim Laden von gemarshallt Daten? Denkst du vielleicht an "eval"? Marshal ist die einzige Möglichkeit, die ursprüngliche Kodierung sicherzustellen. – pguardiario
Um die Ruby-Dokumentation für Marshalling zu zitieren "Nach dem Design kann :: load fast jede in den Ruby-Prozess geladene Klasse deserialisieren. In vielen Fällen kann dies zu Remotecodeausführung führen, wenn die Marshal-Daten von einer nicht vertrauenswürdigen Quelle geladen werden." –
Ich frage mich, ob Sie ein konkretes Beispiel geben können, wo das bei OPs passieren könnte. Ich denke nicht, dass es wirklich möglich ist. – pguardiario