zoukankan      html  css  js  c++  java
  • JSON.parse

    摘自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

    The JSON.parse() method parses a JSON string, constructing the JavaScript value or object described by the string. An optional reviver function can be provided to perform a transformation on the resulting object before it is returned.

    Syntax

    JSON.parse(text[, reviver])

    Parameters

    text
    The string to parse as JSON. See the JSON object for a description of JSON syntax.
    reviver Optional
    If a function, prescribes how the value originally produced by parsing is transformed, before being returned.

    Return value

    The Object corresponding to the given JSON text.

    Exceptions

    Throws a SyntaxError exception if the string to parse is not valid JSON.

    Examples

    Using JSON.parse()

    JSON.parse('{}');              // {}
    JSON.parse('true');            // true
    JSON.parse('"foo"');           // "foo"
    JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
    JSON.parse('null');            // null

    Using the reviver parameter

    If a reviver is specified, the value computed by parsing is transformed before being returned. Specifically, the computed value and all its properties (beginning with the most nested properties and proceeding to the original value itself) are individually run through the reviver, which is called with the object containing the property being processed as this and with the property name as a string and the property value as arguments. If the reviver function returnsundefined (or returns no value, e.g. if execution falls off the end of the function), the property is deleted from the object. Otherwise, the property is redefined to be the return value.

    If the reviver only transforms some values and no others, be certain to return all untransformed values as-is, otherwise they will be deleted from the resulting object.

    JSON.parse('{"p": 5}', (key, value) =>
      typeof value === 'number'
        ? value * 2 // return value * 2 for numbers
        : value     // return everything else unchanged
    );
    
    // { p: 10 }
    
    JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
      console.log(key); // log the current property name, the last is "".
      return value;     // return the unchanged property value.
    });
    
    // 1
    // 2
    // 4
    // 6
    // 5
    // 3 
    // ""

    JSON.parse() does not allow trailing commas

    // both will throw a SyntaxError
    JSON.parse('[1, 2, 3, 4, ]');
    JSON.parse('{"foo" : 1, }');

    Specifications

    SpecificationStatusComment
    ECMAScript 5.1 (ECMA-262)
    The definition of 'JSON.parse' in that specification.
    Standard Initial definition. Implemented in JavaScript 1.7.
    ECMAScript 2015 (6th Edition, ECMA-262)
    The definition of 'JSON.parse' in that specification.
    Standard  
    ECMAScript 2017 Draft (ECMA-262)
    The definition of 'JSON.parse' in that specification.
    Draft  

    Browser compatibility

    FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
    Basic support (Yes) 3.5 (1.9.1) 8.0 10.5 4.0

    Gecko-specific notes

    Starting Gecko 29 (Firefox 29 / Thunderbird 29 / SeaMonkey 2.26), a malformed JSON string yields a more detailed error message containing the line and column number that caused the parsing error. This is useful when debugging large JSON data.

    JSON.parse('[1, 2, 3, 4,]');
    // SyntaxError: JSON.parse: unexpected character at
    // line 1 column 13 of the JSON data

    See also

  • 相关阅读:
    linux下链接静态链接库
    linux消息队列操作(转)
    android 模块编译,mm 命令
    关于函数里对指针赋值的问题
    Android内核和驱动篇Android内核介绍 (转)
    pthread属性使用(转)
    MOD_INC_USE_COUNT和MOD_DEC_USE_COUNT(转)
    linux下配置文件的读写
    从Linux程序中执行shell(程序、脚本)并获得输出结果(转)
    封装错误信息打印的函数
  • 原文地址:https://www.cnblogs.com/Roxlin/p/6116328.html
Copyright © 2011-2022 走看看