首页 / 知识
关于javascript:安全地将JSON字符串转换为对象
2023-04-14 06:43:00

Safely turning a JSON string into an object给定一个JSON数据字符串,如何安全地将该字符串转换为一个JavaScript对象? 很明显,你可以用像…
…但这会使我们容易受到包含其他代码的JSON字符串的攻击,这对于简单地评估似乎非常危险。 只要你能保证一个相当现代化的浏览器, jquery方法现在已弃用。改为使用此方法:
使用已弃用的jquery功能的原始答案: 如果使用jquery,只需使用:
这正是您要查找的内容(请参见jquery文档)。 编辑:这个答案适用于IE<7,对于现代浏览器,请查看上面的乔纳森的答案。 编辑:这个答案过时了,乔纳森的回答( org有多种语言的JSON解析器,包括4种不同的JavaScript解析器。我相信大多数人都会考虑json2.js的goto实现。 使用msdn上以下链接中表示的简单代码。
反向
我不确定其他的方法,但这里是如何在原型(JSON教程)中实现的。
使用true调用evaljson()作为参数来清理传入字符串。 这似乎就是问题所在: 通过Ajax WebSocket等接收到一个输入,它始终是字符串格式的——但您需要知道它是否是json.parsable。问题是,如果您总是通过json.parse运行它,那么程序可能会"成功"地继续运行,但您仍然会看到控制台中抛出了一个错误,并带有可怕的"错误:意外的标记"x"。
如果您使用的是jquery,您也可以使用 然后你可以做像
回调将传递返回的数据,该数据将是JSON结构定义的javascript对象或数组,并使用 尝试使用此数据对象的方法。例:
当您使用串行端口编程时,此方法确实有助于nodejs。 为了好玩,以下是使用功能的方法:
使用
然后可以得到
使用文档中描述的jquery:
使用json.parse可能是最好的方法。以下是一个现场演示示例
我找到了一个更好的方法: 在咖啡中描述:
在JavaScript中:
json.parse将变为对象。 JSON解析总是让人头疼。如果输入不符合预期,它就会抛出一个错误,并破坏您正在做的工作。您可以使用下面的小函数来安全地分析您的输入。即使输入无效或已经是大多数情况下更好的对象,它也始终会转换对象。
将对象转换为JSON,然后对其进行解析,对我来说是可行的,比如:
如果我们有这样的字符串:""状态":1,"token":"65B4352B2DF4957A09AD0CE5714059 正式记录: 句法
参数 文本 要解析为JSON的字符串。有关JSON语法的描述,请参见JSON对象。 复活器(可选) 如果是一个函数,这就规定了在返回之前如何转换解析产生的值。 返回值 与给定的JSON文本对应的对象。 例外情况 如果要分析的字符串不是有效的JSON,则引发SyntaxError异常。 parse()将传递给函数的任何JSON字符串转换为JSON对象。 要更好地理解,请按F12打开浏览器的inspect元素,然后转到console编写以下命令:
现在运行命令:
您将得到输出作为对象结果:真,计数:1。 为了使用该对象,可以将其分配给变量,例如obj:
现在,通过使用obj和dot(.)操作符,可以访问JSON对象的属性。 尝试运行命令
您还可以使用
有关更多信息,请阅读json.parse 我知道,以前的问题,但是没有人注意到使用 举个例子:
这有点安全,因为它在函数内部执行,而不是直接在代码中编译。因此,如果其中有一个函数声明,它将不会绑定到默认窗口对象。 我使用它来"编译"简单而快速的DOM元素(例如数据属性)的配置设置。 用json.parse()解析json字符串,数据变成一个javascript对象。
这里,JSON表示处理JSON数据集。 例子,假设我们从一个Web服务器接收到了此文本:
如果您的javascript在mooolts中,那么框架将匿名提供
此外, http://jsfiddle.net/chetabahana/qbx9b5pm/ 试试这个。这个是用打字机写的。
|
最新内容
相关内容
linux数据库同步命令?
linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,DB2数据库在linux操作系统的指令有哪些?1、linux系统常用操作命令linux命令进数据库?
linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,主机,linux系统mysql数据库怎么进入数据库首先确保linux下mysql安linux清空表数据命令?
linux清空表数据命令?,系统,数据,软件,名称,不了,命令,文件,电脑,地址,位置,Linux删除文件的命令?1、linux 删除文件指令:输入rd盘符名:\文件夹linux命令查找字符串?
linux命令查找字符串?,工具,信息,命令,字符串,系统,工作,文件,范本,样式,文本,Linux中使用grep命令,查询多个字符串Linux grep命令用于查找文linux数据库检查命令?
linux数据库检查命令?,服务,状态,地址,位置,系统,信息,命令,工作,情况,密码,在linux中,怎样查看Mysql服务运行状态?1、psaux或netstat-tlunppslinux命令进去数据库?
linux命令进去数据库?,地址,服务,名字,系统,数据库,工具,基础,工作,管理,网络,linux系统mysql数据库怎么进入数据库(linux进入mysql数据库命令linux数据库基础命令?
linux数据库基础命令?,地址,工作,基础,系统,命令,信息,情况,工具,设备,目录,linux下基本命令使用讲解对Linux操作系统进行维护操作的实用命令linux数据共享命令?
linux数据共享命令?,情况,系统,工具,网络,数据,软件,发行,设备,命令,文件,Linux文件系统操作命令df命令:用于显示文件系统的磁盘空间使用情况,包命令发送数据linux?
命令发送数据linux?,数据,地址,时间,工具,系统,设计,工作,网络,命令,综合,linux向目标主机www.sohu发送数据包命令Tracert 命令用 IP 生存时间数据库导出命令linux?
数据库导出命令linux?,数据,系统,名称,密码,软件,服务,情况,网上,工具,文件,Linux系统下mysqdump在导出数据时,没有指定任何目录,那么导出的文linux命令清空数据?
linux命令清空数据?,服务,数据,名称,不了,百度,管理,档案,产品,命令,文件,删除文件夹中所有文件的linux命令(清理垃圾文件的命令是什么)_百度.linux大数据在线命令?
linux大数据在线命令?,工作,地址,系统,信息,管理,命令,数据,在线,目录,网络,linux系统常用操作命令linux常用命令有pwd命令、cd命令、ls命令、