zoukankan      html  css  js  c++  java
  • JSON的序列化和反序列化eval()和parse()方法以及stringfy()方法

    1、json解析的方法有两种:eval()和parse()方法

    eval() 较危险,不光解析了字符串,还解析了js方法,无论何时用eval()都是非常危险的。-----不建议使用
    JSON.parse()较好,会解析出错误。

    例子[加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行将json数据转换为json对象。]

    var jsondata='{"staff":[{"name":"洪七","age":alert(111)},{"name":"郭靖","age":35},{"name":"黄蓉","age":30}]}';
    var jsonobj=eval('('+jsondata+')');
    console.log(jsonobj.staff[0].name);  //会先弹框才在控制台输出 “洪七”

    parse()方法  遇到js代码会直接解析出错误。

    2.序列化和反序列化JSON.parse()和JSON.stringify()

    JSON.parse();
    作用:将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)
    语法:JSON.parse(text [, reviver])
    text 必选。 一个有效的 JSON 字符串。
    reviver 可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。
    返回值:JSON对象
    实例如下:



    JSON.stringify()
    作用:将 JavaScript json对象转换为JavaScript对象表示法的JSON字符串(对象转为字符串)
    语法:JSON.stringify(value [, replacer] [, space]);
    value 必选 通常为对象或数组
    replacer 可选转换结果的函数或数组
    space 可选。 添加缩进、空白和换行符来返回值 JSON 文本更便于阅读。
             如果省略 space,返回值文本生成,没有任何额外的空白。
             如果 space 是数字,则返回值具有空白的文本缩进指定数目在每个级别的。 如果 space 大于10 时,文本缩进 10 个空白。
             如果 space 为非空字符串,如“ ”,返回值文本缩进与字符串的字符在每个级别。
             如果 space 为大于 10 个字符的字符串,使用前 10 个字符。
    返回值:JSON 包含的文本字符串。
    如下

     
  • 相关阅读:
    2019 NJCTF WarmUp
    家用路由器渗透过程总结
    IOT 安全资料整合(主要是路由器)
    由一道工控路由器固件逆向题目看命令执行漏洞
    路由器漏洞挖掘之 DIR-850/645 命令执行漏洞复现
    路由器漏洞挖掘之 DIR-815 栈溢出漏洞分析
    从外网到内网的渗透姿势分享
    ESP8266 显示实时天气信息
    静态链接学习之 ELF 文件 DIY
    ROP-Tamu CTF 2018-pwn5
  • 原文地址:https://www.cnblogs.com/whkl-m/p/6295374.html
Copyright © 2011-2022 走看看