JSON.parse()

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

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

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

语法

JSON.parse(text[, reviver])

参数说明:

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

JSON 解析实例

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

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

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

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

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

你可以使用我们的在线工具检测:https://c.runoob.com/front-end/53。

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

实例

<p id="demo"></p> <script> var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.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_demo.txt


从服务端接收数组的 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_demo_array.txt


异常

解析数据

JSON 不能存储 Date 对象。

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

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

实例

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.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":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.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":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.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(4)---JSON.parse()相关推荐

  1. js字符串转换为json对象JSON.parse()及将json对象转为json字符串JSON.stringify()

    一.JSON对象中有两个非常好用的方法: 1 JSON.stringify接收一个JS对象转化为json字符串 2 JSON.parse接受json字符串转化为JS对象 const my={ name ...

  2. java json parser_Java JSONParser.parse方法代碼示例

    本文整理匯總了Java中org.json.simple.parser.JSONParser.parse方法的典型用法代碼示例.如果您正苦於以下問題:Java JSONParser.parse方法的具體 ...

  3. JSON.stringify() / JSON.parse() / JSON 真是个好东西

    目录 1. JSON 基本概念 1.1 JavaScript 对象表示法 1.2 JSON 文件 1.3 JSON 语法 2. XML VS JSON 2.1 共同点 2.2 不同点 2.3 使用步骤 ...

  4. javascript json和json字符串互转

    javascript json和json字符串互转 <!DOCTYPE html> <html lang="en"><head><meta ...

  5. 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)...

    在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...

  6. Newtonsoft.Json(Json.net)的基本用法

    Newtonsoft.Json(Json.net)的基本用法 添加引用: 使用NuGet,命令:install-package Newtonsoft.Json 实体类: public class Bo ...

  7. js 数组、对象转json 以及json转 数组、对象

    1.JS对象转JSON 方式:JSON.stringify(obj) var json = {"name":"iphone","price" ...

  8. 十分钟搞懂JSON(JSON对象---JSON字符串---对象 之间的区别)

    好记性不如烂笔头,相信我,看了之后你会彻底搞懂JSON 前言:前天被JSON对象,JSON字符串,JAVA对象搞混了,不知道各自代表的意思,我就查了资料,总结为一篇博文. 另外我想List<Us ...

  9. 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  10. JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象

    JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对 ...

最新文章

  1. 【CURL】模拟登录网站并获取用户信息
  2. 公司的费用报销系统【为什么不好用】?做业务系统软件的可以参考一下
  3. Web移动应用调试工具——Weinre
  4. Ajax(异步请求)和传统(同步请求)区别
  5. 荒野行动服务器维护啥时好,荒野行动服务器真的极差
  6. Android应用程序管理系列(二)——PackageManager 包管理者
  7. Android 系统性能优化(36)---显示性能指标
  8. Windows7下VS2013+WDK8.1开发WDF驱动程序全过程
  9. PostgreSQL 查看数据库,索引,表,表空间大小
  10. python aop编程_学习笔记: AOP面向切面编程和C#多种实现
  11. 学习遗忘曲线_级联相关,被遗忘的学习架构
  12. Goolg adb常用工具包下载地址
  13. 【React】JSX 语法及原理
  14. NYOJ 小明的调查作业
  15. udal导mysql_mybatis之sql标签与include标签
  16. 三年磨一剑——微信OCR图片文字提取
  17. 家庭服务机器人的人脸检测、跟踪与识别研究
  18. 如何解决Word启动问题
  19. 5G/NR 终于明白5G原来是这样
  20. java作为微信小程序的后端_微信小程序连接java后端

热门文章

  1. STM32-SPI通信
  2. 第二章16位和32位微处理器(1)——8086的编程结构与最小模式
  3. JSON在android中应用
  4. 内核同步机制-信号量(semaphore)
  5. 【重难点】【JUC 04】synchronized 原理、ReentrantLock 原理、synchronized 和 Lock 的对比、CAS 无锁原理
  6. kafka详解及搭建
  7. 第二阶段冲刺 每日站立会议 1/4
  8. JavaC#语法差别
  9. Android 百度地图开发问题----解决地图有时候加载不出来问题
  10. 【转载】小米2进入recovery的方法