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);

对于较老的浏览器,可使用 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字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数)的更多相关文章

  1. 转:JS中生成和解析JSON

    原文地址:JS中生成和解析JSON 1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name ...

  2. JS中生成和解析JSON

    1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name = "jyy"; ...

  3. JS中的预解析

    js预解析对于很多学习web前端开发的新手们很困扰,总是很难搞懂到底是个什么东西,今天零度就为大家简单的分析一下,争取让大家都明白! 首先,看一下下面的代码: alert(a); var a = 1; ...

  4. js中singleton模式解析及运用

    singleton模式,又名单例模式.顾名思义,就是只能实例化一次的类(javascript中没有真正的类,我们通常用函数来模拟类,习惯称之为"伪类").具体地说,singleto ...

  5. JS中 isNaN() 方法解析

    1. isNaN() 存在的意义 由于 NaN 是唯一一个不等于自身的值,不像其他的值,可以用相等操作符来判断是否等于自身,NaN == NaN和NaN === NaN都会返回false,所以isNa ...

  6. C#使用Json.NET解析Json

    本文转载自 http://xiaosheng.me/2016/10/01/article25/ 最近在 C# 项目中需要使用到 Json 格式的数据,我简单上网搜索了一下,基本上有两种操作 Json ...

  7. js中字符串和数组相互转化的方法

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #e4af0a } p. ...

  8. Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式

    Python第十四天 序列化  pickle模块  cPickle模块  JSON模块  API的两种格式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Py ...

  9. java和js中JSONObject,JSONArray,Map,String之间转换

    --------------------------------------------------Java中--------------------------------------------- ...

随机推荐

  1. 项目: 更新(二) python 实现大概FTP的功能

    服务器利用 socketserver 模块 构造, 实现了 多进程. 客户端仍然利用的是底层的 socket模块. 只不过进行了更深度的 解耦, 新加或者删除 某些功能 更方便 在上一个版本的基础上, ...

  2. JS错误记录 - dom操作 - 排序

    本次练习错误总结: 1. for循环要套到按钮的onclick里面,否则onclick点击事件无法依次执行. 2. var n1, var n2 这两个变量是arr.sort排序使用的,所以应该放在s ...

  3. 交换工资 SQL

  4. dp之多重背包(未用二进制优化)

    hdu 2191: #include <iostream>#include <stdio.h>#include <string.h>using namespace ...

  5. Elasticsearch中JAVA API的使用

    1.Elasticsearch中Java API的简介 Elasticsearch 的Java API 提供了非常便捷的方法来索引和查询数据等. 通过添加jar包,不需要编写HTTP层的代码就可以开始 ...

  6. IK分词器插件elasticsearch-analysis-ik 6.1.1

    http://88250.b3log.org/full-text-search-elasticsearch#b3_solo_h3_0 IK分词器插件 (1)源码 https://github.com/ ...

  7. JavaScript--数据结构与算法之列表

    3.1 列表的抽象数据类型定义 列表:一组有序的数据.每个列表中的数据称为元素.在JavaScript中列表的元素可以是任意的数据类型.列表中保存的元素没有事先的限定,实际使用时的元素数量受到程序内存 ...

  8. Android学习笔记之Bitmap位图虽触摸点移动

    package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; public class mianActiv ...

  9. 20.SpringBoot 之 读取环境变量和绑定属性对象

    转自:https://blog.csdn.net/catoop/article/details/50548009

  10. 14、序列化操作,类的保存和dict转JSON

    在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: d = dict(name='Bob', age=20, score=88) 可以随时修改变量,比如把name改成'Bill',但 ...