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

    JavaScript
    JSON.parse 函数 (JavaScript)

     

    将 JavaScript 对象表示法 (JSON) 字符串转换为对象。

    JSON.parse(text [, reviver])
    参数
    text

    必需。 一个有效的 JSON 字符串。

    reviver

    可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:

    • 如果 reviver 返回一个有效值,则成员值将替换为转换后的值。

    • 如果 reviver 返回它接收的相同值,则不修改成员值。

    • 如果 reviver 返回 null  undefined,则删除成员。

    返回值

    一个对象或数组。

    异常

    如果此函数引发 JavaScript 分析器错误(如“SCRIPT1014:无效字符”),则输入文本将不遵循 JSON 语法。 若要更正此错误,请执行下列操作之一:

    • 修改 text 参数以遵循 JSON 语法。 有关更多信息,请参见 JSON 对象的 BNF syntax notation(BNF 语法表示法)。

    • 确保通过 JSON 兼容的实现对文本参数进行序列化,例如 JSON.stringify

    示例

    以下示例使用 JSON.parse 将 JSON 字符串转换成对象。

    1. var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
    2. var contact = JSON.parse(jsontext);
    3. document.write(contact.surname + ", " + contact.firstname);
    4.  
    5. // Output: Aaberg, Jesper

    以下示例演示了如何使用 JSON.stringify 将数组转换成 JSON 字符串,然后使用 JSON.parse 将该字符串还原成数组。

    1. var arr = ["a""b""c"];
    2. var str = JSON.stringify(arr);
    3. document.write(str);
    4. document.write ("<br/>");
    5.  
    6. var newArr = JSON.parse(str);
    7.  
    8. while (newArr.length > 0{
    9.     document.write(newArr.pop() + "<br/>");
    10. }
    11.  
    12. // Output:
    13. var arr = ["a""b""c"];
    14. var str = JSON.stringify(arr);
    15. document.write(str);
    16. document.write ("<br/>");
    17.  
    18. var newArr = JSON.parse(str);
    19.  
    20. while (newArr.length > 0{
    21.     document.write(newArr.pop() + "<br/>");
    22. }
    23.  
    24. // Output:
    25. ["a","b","c"]
    26. c
    27. b
    28. a

    reviver 函数通常用于将国际标准化组织 (ISO) 日期字符串的 JSON 表示形式转换为协调世界时 (UTC) 格式 Date 对象。

    此示例使用 JSON.parse 来反序列化 ISO 格式的日期字符串。dateReviver函数为格式为 ISO 日期字符串的成员返回Date对象。

    1. var jsontext = '{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }';
    2. var dates = JSON.parse(jsontext, dateReviver);
    3. document.write(dates.birthdate.toUTCString());
    4.  
    5. function dateReviver(key, value) {
    6.     var a;
    7.     if (typeof value === 'string'{
    8.         a = /^(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2}(?:.d*)?)Z$/.exec(value);
    9.         if (a) {
    10.             return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
    11.                             +a[5], +a[6]));
    12.         }
    13.     }
    14.     return value;
    15. };
    16.  
    17. // Output:
    18. // Thu, 25 Dec 2008 12:00:00 UTC
    要求

     

    在以下文档模式中受到支持:Internet Explorer 8 标准、Internet Explorer 9 标准、Internet Explorer 10 标准、Internet Explorer 11 标准。Windows 应用商店 应用程序中也支持此项。请参阅 版本信息

    在以下文档模式中不受支持:Quirks、Internet Explorer 6 标准模式、Internet Explorer 7 标准模式。

    请参见

    参考

     
     
     
     

    JSON.parse 解析字符串出错的解决方法发布

    程序中很多数据是动态拼接而成的json数据,最近在用json的时候老是现JSON.parse错误

    经查,原来是json数据的格式要求非常严格,属性名称必须是用双引号“”括起来。

    复制代码 代码如下: var a=JSON.parse('{"a":"aaaaa"}');//正确 var a=JSON.parse("{'a':'aaaaa'}");//错误

    详细出处参考:http://www.jb51.net/article/24175.htm

  • 相关阅读:
    信号之可重入函数
    信号的发送
    守护进程详解以及start-stop-daemon命令
    信号基本概念
    常用进程调度算法(转)
    malloc/free与new/delete的区别(转)
    IP地址转换
    exec系列函数详解
    fork函数拓展
    leetcode第156场周赛5205
  • 原文地址:https://www.cnblogs.com/yiliweichinasoft/p/3387127.html
Copyright © 2011-2022 走看看