【java奇思妙想】eval(data)和eval(“(“+data+“)“)的区别
如果data是字符串,使用eval("("+data+")")可以将其转换为json对象,和JSON.parse的功能一样。
如果data是json对象,使用eval("("+data+")")会报错,正如你描述的错误。eval一个json对象,没有什么作用,这个时候不需要使用eval方法,直接用data即可。
所以,如果你那边能确定后台返回的是字符串,就使用eval("("+data+")")(eval会带来很多问题,不建议使用,如果想实现转化用JSON.parse更好),如果后台返回的是json对象,什么操作都不需要,直接使用data即可。如果你是用的jquery, 将type(一般为这个配置属性)设为json,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可
另外多说一点:
为什么eval要添加括号呢?
原因:eval本身的问题。 由于json是以{}的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。
console.log(eval("{}"); // undefined
console.log(eval("({})");// object[Object]
【java奇思妙想】eval(data)和eval(“(“+data+“)“)的区别相关推荐
- MongoDB和Java(4):Spring Data整合MongoDB(XML配置)
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- nslang oracle_解决ojdbc14连接oracle报“java.sql.SQLException: Io 异常: Size Data Unit (SDU) mismatch”异常问题...
一.前言 通过ojdbc14.jar连接oracle数据库,应用运行期间报出"java.sql.SQLException: Io 异常: Size Data Unit (SDU) misma ...
- MongoDB和Java(5):Spring Data整合MongoDB(注解配置)
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- Caused by java.lang.Exception Failed to send data to Kafka Expiring
flink 写kafka,报错,作业挂掉 Caused by: java.lang.Exception: Failed to send data to Kafka: Expiring 89 recor ...
- Java接收solr动态域_Spring Data Solr创建动态域报错:org.springframework.data.solr.UncategorizedSolrException...
今天在项目中使用Spring Data Solr导入动态域数据报错, 控制台打印错误信息如下 Exception in thread "main" org.springframew ...
- java加载自定义字体java.io.IOException: Problem reading font data.
异常信息 load font error:{} java.io.IOException: Problem reading font data.at java.awt.Font.createFont0( ...
- eval函数python_Python eval()函数
eval函数python Python eval() function is used to parse an expression string as python expression and t ...
- 一些数据格式化-Eval( )和DataBinder.Eval(Container.DataItem, )的区别及用法
ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldn ...
- 【Elasticsearch】Data too large, data for which is larger than the limit of
1.概述 参考:elasticsearch报Data too large异常处理 在线上ES集群日志中发现了如下异常,elasticsearch版本为7.3.2 [2021-03-16T21:05:1 ...
- spring data jpa 与 jpa的区别
spring data jpa 与 jpa的区别 - sinat_39789638的博客 - CSDN博客 https://blog.csdn.net/sinat_39789638/article/d ...
最新文章
- 双目视觉测距原理,数学推导及三维重建资源
- mysql单机多实例启动不了_mysql单机启用多实例的配置方法
- 使用links方式安装eclipse插件
- 【Qt】Qt中JSON简介
- 2020 最烂密码 TOP 200 大曝光,一不小心就中枪了
- 从入门到放弃之大数据Hive
- visual studio运行时库MT、MTd、MD、MDd 的区别
- Javascript——Math对象
- 如何对大数据进行分析
- Node.js:模块化思想中一个Javascript文件分析以及exports 和 module.exports的区别
- 合并多个 SQL 文件,并用 Navicat 执行
- 单片机外设篇——SPI协议
- 南京财经大学计算机考研资料汇总
- 史上最全进入BIOS方法及U盘重装系统步骤详解
- 机器学习:CS 229 - Machine Learning - Supervised Learning cheatsheet
- Linux笔记之Debian 11(bullseye) 配置国内源
- Bitvise SSH Client下载
- JavaScript - 日期型字符串增加天数(日期增加指定天数计算)
- The vulnerabilities were addressed in OpenSSL 1.02f/1.01r. cocos2d 2.2.6
- 基于php微信小程序购物商城 校园二手商品 图书鲜花商城 毕业设计(3)微信用户登录
热门文章
- Linux里隐藏的计算器,你知道它的奥秘吗?
- FreeRTOS之Tracealyzer for FreeRTOS(FreeRTOS+Trace) 详解(源码解析+移植)
- PHP设计渐变的效果,canvas渐变色:canvas如何实现渐变色的效果?
- php提前输出响应及注意问题
- MySQL优化之——触发器
- 【Computer Organization笔记29】大作业展示
- PHP与Spring的强势接口设计_微课介绍
- POJO中使用ThreadLocal实现Java嵌套事务
- bzoj1057,poj3250
- android刷新蓝牙缓存,如何使用GattServer以编程方式清除蓝牙缓存