JSON教程
  • [JSON教程]JSON 教程
  • [JSON教程]JSON 简介
  • [JSON教程]JSON 语法
  • [JSON教程]JSON 对象
  • [JSON教程]JSON 数组
  • [JSON教程]JSON.parse()
  • [JSON教程]JSON.stringify()
  • [JSON教程]JSON 使用
  • [JSON教程]JSONP 用法
  • [JSON教程]PHP JSON
  • [JSON教程]Python JSON
  • [JSON教程]Android JSON
  • 直达腾讯云服务器
    腾讯云服务器,数据库,短信等热销产品限量秒杀;新购爆款3折起;
    腾讯云数据库MySQL入门机型仅12元/月
    腾讯云云服务器新购特惠,最低2折起,1核1G3年仅794.73元,即0.73元/日。
    腾讯云国际顶级CA机构SSL证书8.8折,云解析买一年最高送半年!
    腾讯云为数百万企业和开发者提供安全、稳定的云服务器、云数据库、CDN等云服务
    腾讯云服务器安全可靠高性能,多种配置供您选择
    腾讯云数据库性能卓越稳定可靠,为您解决数据库运维难题
    阿里云服务器入口
    180天免费用腾讯云服务器马上领取
    您当前位置:狗鱼MySQL教程 >> JSON >> JSON教程 >> JSON.parse()
    JSON.parse()
    更新日期: 2017年07月13日 来源: 本站原创 作者: 佚名 阅读:
    上一篇JSON 数组 下一篇:JSON.stringify()

    json.parse()

    JSON 通常用于与服务端交换数据。

    在接收服务器数据时一般是字符串。

    我们可以使用 JSON.parse() 方法将数据转换为 javascript 对象。

    语法

    JSON.parse(text[, reviver])

    参数说明:

    • text:必需, 一个有效的 JSON 字符串。
    •  
    • reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

    JSON 解析实例

    例如我们从服务器接收了以下数据:

    { "name":"noob", "alexa":10000, "site":"www.noob.com" }

    我们使用 JSON.parse() 方法处理以上数据,将其转换为 javaScript 对象:

    var obj = JSON.parse('{ "name":"noob", "alexa":10000, "site":"www.noob.com" }');

    解析前要确保你的数据是标准的 JSON 格式,否则会解析出错。


     

    解析完成后,我们就可以在网页上使用 JSON 数据了:
     

    实例

    <p id="demo"></p>
    <script> var obj = JSON.parse('{ "name":"noob", "alexa":10000, "site":"www.noob.com" }'); document.getElementById("demo").innerhtml = obj.name + ":" + obj.site; </script>

     

    从服务端接收 JSON 数据

    我们可以使用 AJAX 从服务器请求 JSON 数据,并解析为 JavaScript 对象。

    实例

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    myObj = JSON.parse(this.responseText);
    document.getElementById("demo").innerHTML = myObj.name;
    }
    };
    xmlhttp.open("GET", "/try/ajax/json_demo.txt", true);
    xmlhttp.send();

    查看服务端数据

     

    从服务端接收数组的 JSON 数据

    如果从服务端接收的是数组的 JSON 数据,则 JSON.parse 会将其转换为 JavaScript 数组:

    实例

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    myArr = JSON.parse(this.responseText);
    document.getElementById("demo").innerHTML = myArr[1];
    }
    };
    xmlhttp.open("GET", "/try/ajax/json_demo_array.txt", true);
    xmlhttp.send();

    查看服务端数据

    异常

    解析数据

    JSON 不能存储 Date 对象。

    如果你需要存储 Date 对象,需要将其转换为字符串。

    之后再将字符串转换为 Date 对象。

    实例

    var text = '{ "name":"noob", "initDate":"2018-12-14", "site":"www.noob.com"}';
    var obj = JSON.parse(text);
    obj.initDate = new Date(obj.initDate);
    document.getElementById("demo").innerHTML = obj.name + "创建日期: " + obj.initDate;

     

    我们可以启用 JSON.parse 的第二个参数 reviver,一个转换结果的函数,对象的每个成员调用此函数。

    实例

    var text = '{ "name":"noob", "initDate":"2018-12-14", "site":"www.noob.com"}';
    var obj = JSON.parse(text, function (key, value) {
    if (key == "initDate") { return new Date(value);
    }
    else { return value;

    }
    }
    );
    document.getElementById("demo").innerHTML = obj.name + "创建日期:" + obj.initDate;

     

    解析函数

    JSON 不允许包含函数,但你可以将函数作为字符串存储,之后再将字符串转换为函数。

    实例

    var text = '{ "name":"noob", "alexa":"function () {return 10000;}", "site":"www.noob.com"}';
    var obj = JSON.parse(text); obj.alexa = eval("(" + obj.alexa + ")");
    document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();

     

    不建议在 JSON 中使用函数。


    浏览器支持

    主流浏览器都支持 JSON.parse() 函数:

    • Firefox 3.5
    • Internet Explorer 8
    • Chrome
    • Opera 10
    • Safari 4
     

    感觉本站内容不错,读后有收获?

    我要小额赞助,鼓励提供更好的内容教程

    上一篇JSON 数组 下一篇:JSON.stringify()
    Copyright 2013-2017 Powered by 狗鱼MySQL教程,All Rights Reserved.
    广州相如计算机科技有限有限公司 版权所有 粤ICP备08130661号-4
    售前咨询:020-38667011 手机:13711588918