How to serialize an array and deserialize back

后端 未结 2 540
既然无缘
既然无缘 2021-02-08 10:54

How do I serialize an array and deserialize it back from a string? I tried the following code, but it doesn\'t really return the original array of integers but does for the arra

2条回答
  •  清酒与你
    2021-02-08 11:40

    The standard way is with Marshal:

    x = Marshal.dump([1, 2, 3])
    #=> "\x04\b[\bi\x06i\ai\b"
    
    Marshal.load(x)
    #=> [1, 2, 3]
    

    But you can also do it with JSON:

    require 'json'
    
    x = [1, 2, 3].to_json
    #=> "[1,2,3]"
    
    JSON::parse(x)
    #=> [1, 2, 3]
    

    Or YAML:

    require 'yaml'
    
    x = [1, 2, 3].to_yaml
    #=> "---\n- 1\n- 2\n- 3\n"
    
    YAML.load(x)
    #=> [1, 2, 3]
    

提交回复
热议问题