js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数)
js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数)
一、总结
1、JSON解析:JSON.parse(myJSONtext);
2、JSON序列化:JSON.stringify(myObject);
3、一般函数的功能都很全,很多我们不常用的功能都有,可选参数,需要特殊功能的时候去查完整的函数
二、js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)
JSON 的解析和序列化
一般情况下,我们的json数据都是从服务端获取到的,获取的json数据是以字符串的形式返回的。这个字符串虽然是json格式的,但是不能被直接使用,我们必须将该字符串转化为一个对象才能正常解析它
- JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval()函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。(如果JSON中包含恶意代码也会被直接执行)
- 使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON解析器只会识别JSON文本,而不会执行。
- JSON 的解析:json数据转换成js对象
语法:var myObject = JSON.parse(myJSONtext, reviver);
- JSON的序列化:js对象转换成json数据(字符串)
语法:var myJSONText = JSON.stringify(myObject, replacer);
- JSON 的解析:json数据转换成js对象
对于较老的浏览器,可使用 JavaScript 库: https://github.com/douglascrockford/JSON-js
三、代码
json解析
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>课堂演示</title>
</head>
<body>
<script>
//实际使用的时候json数据需要从服务器加载,这里假定下面的数据是从服务器加载过来的,来演示后续的操作。
var jsonstr='[{"name":"aaa","age":30},{"name":"bbb","age":25},{"name":"ccc","age":18}]';
//alert(typeof(jsonstr))
//json数据转换成js对象
//var jsonobj=JSON.parse(jsonstr);
//alert(jsonstr)
// alert(jsonobj[0].name)
//alert(typeof(jsonobj)) var jsonobj=JSON.parse(jsonstr,function(key,value){ //1、第二个参数,解析式时替换
if ((key=='name')) {
return 'VIP会员:'+value;
}else{return value}
}); alert(jsonobj[0].age)
</script>
</body>
</html>
json序列化
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>课堂演示</title>
</head>
<body>
<script>
var jsonobj=[ //2、json对象
{
name:'aaa',
age:30,
lv:2
},
{
name:'bbb',
age:25,
lv:1
}
] //alert(jsonobj[0].name+'\n'+jsonobj[0].age+'\n'+jsonobj[0].lv) // var jsonstr=JSON.stringify(jsonobj)
// alert(typeof(jsonobj))
// alert(typeof(jsonstr)) //第二个参数
// var jsonstr=JSON.stringify(jsonobj,['name','lv'])
// alert(jsonstr)
// var jsonstr=JSON.stringify(jsonobj,function(key,value){
// if (key=='lv') {
// return '等级为:'+value
// }else{return value}
// })
// alert(jsonstr) //第三个参数表示缩进
var jsonstr=JSON.stringify(jsonobj,null,4) //3、函数还有其余参数
alert(jsonstr)
</script>
</body>
</html>
js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数)的更多相关文章
- 转:JS中生成和解析JSON
原文地址:JS中生成和解析JSON 1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name ...
- JS中生成和解析JSON
1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name = "jyy"; ...
- JS中的预解析
js预解析对于很多学习web前端开发的新手们很困扰,总是很难搞懂到底是个什么东西,今天零度就为大家简单的分析一下,争取让大家都明白! 首先,看一下下面的代码: alert(a); var a = 1; ...
- js中singleton模式解析及运用
singleton模式,又名单例模式.顾名思义,就是只能实例化一次的类(javascript中没有真正的类,我们通常用函数来模拟类,习惯称之为"伪类").具体地说,singleto ...
- JS中 isNaN() 方法解析
1. isNaN() 存在的意义 由于 NaN 是唯一一个不等于自身的值,不像其他的值,可以用相等操作符来判断是否等于自身,NaN == NaN和NaN === NaN都会返回false,所以isNa ...
- C#使用Json.NET解析Json
本文转载自 http://xiaosheng.me/2016/10/01/article25/ 最近在 C# 项目中需要使用到 Json 格式的数据,我简单上网搜索了一下,基本上有两种操作 Json ...
- js中字符串和数组相互转化的方法
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #e4af0a } p. ...
- Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式
Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Py ...
- java和js中JSONObject,JSONArray,Map,String之间转换
--------------------------------------------------Java中--------------------------------------------- ...
随机推荐
- vue 中表单 [v-bind:true-value="a" v-bind:false-value="b"] 的用法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Web前端开发实战4:导航菜单(一)
在前面的博文中我们提到横向一级菜单,这里我们来看看导航菜单. 导航菜单种类非常多,可是制作原理都是大同 小异的.这里看的比二级下拉式菜单还简单. 来看一些站点上的导航菜单: 垂直导航菜单: 水平导航菜 ...
- start_kernel----lcokdep_init
void lockdep_init(void) { int i; /* * Some architectures have their own start_kernel() * code which ...
- sql跳过非工作日(周末和节假日)
简介:场景1:基于开始日期和工期,推算结束日期. 场景2:基于开始日期和结束日期,计算工期 注:需要自己做界面维护工作日表(s_WorkDay)和节假日表(s_SpecialDay) 涉及到的数据表 ...
- 过滤选择器及jQuery提供的相关方法
基本过滤器: <body> <ul> <li>列表1</li> <li class="red">列表2</li&g ...
- Pairs Forming LCM
题目: B - Pairs Forming LCM Time Limit:2000MS Memory Limit:32768KB Description Find the result of ...
- Git安装及密钥的生成并上传本地文件到GitHub上
之前用的GitHub,不太熟练,一直在上传的过程中遇到了一些问题,看了网上诸多教程,总觉得很乱,特参考一些资料,总结了一篇完整的操作步骤,从下载安装到上传文件,亲测有效 1.下载Git软件:https ...
- CentOS卸载Apache方法
https://www.kafan.cn/edu/49420412.html CentOS卸载Apache方法 首先关闭httpd服务 /etc/init.d/httpd stop 列出httpd相关 ...
- WINWORD.EXE-损坏的图像
问题详情: 系统键 + R键,运行 再输入regedit HKEY_CLASSES_ROOT\.docx HKEY_CLASSES_ROOT\Word.Document.12 HKEY_CURREN ...
- JavaScript 倒计时器,闹钟功能
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...