How can I remove escape sequences from JSON.stringify so that it's human-readable?

前端 未结 4 2073
走了就别回头了
走了就别回头了 2020-12-10 17:10

When I call JSON.stringify() on a complex object in JavaScript, it produces a string with lots of escape sequences (\\\", \\\\\", etc.).

How can I make it create a h

相关标签:
4条回答
  • 2020-12-10 17:35
    JSON.stringify(value[, replacer[, space]])
    

    Space: A String or Number object that's used to insert white space into the output JSON string for readability purposes.

    Replacer: A function that alters the behavior of the stringification process, or an array of String and Number objects that serve as a whitelist for selecting the properties of the value object to be included in the JSON string. If this value is null or not provided, all properties of the object are included in the resulting JSON string.

    So you can do

    var x = {"name":"void", "type":"O'\"Rielly"};
    document.write(JSON.stringify(x, null, ' '));

    0 讨论(0)
  • 2020-12-10 17:35

    I would use JSON.stringify(),

    The JSON.stringify() method converts a JavaScript value to a JSON string, optionally replacing values if a replacer function is specified, or optionally including only the specified properties if a replacer array is specified.

    with four spaces and an appropriate display environment with <pre>...</pre>.

    The result is good, readable, and copyable for other use.

    var object = { name: 'void', type1: "O'\"This", type2: 'O\'That', a: [1, 2, 3] };
    document.write('<pre>' + JSON.stringify(object, 0, 4) + '</pre>');

    0 讨论(0)
  • 2020-12-10 17:36

    You can use the replacer. The second parameter provided by JSON.stringify.Replacer could be a function or array.

    In your case we can create a function which replaces all the special characters with a blank space.The below example replaces the whitespaces and underscores.

    function replacer(key, value) {
      return value.replace(/[^\w\s]/gi, '');
    }
    
    var foo = {"a":"1","b":2};
    var jsonString = JSON.stringify(foo, replacer);
    

    If you simply want to replace the one special character, use:

    JSON.stringify({ a: 1, b: 2 }, null, '\t');
    

    For more information on replacer, check the MDN page JSON.stringify().

    0 讨论(0)
  • 2020-12-10 17:48

    You can use formatting on JSON.stringify.

    '\t' represent a tab character

    JSON.stringify({ uno: 1, dos: 2 }, null, '\t');
    // returns the string:
    // '{
    //     "uno": 1,
    //     "dos": 2
    // }'
    
    0 讨论(0)
提交回复
热议问题