JSONObject JSONArray各种用法以及js eval()函数与JSON.parse的区
2019独角兽企业重金招聘Python工程师标准>>>
一、在后台使用JSONObject对象,并将从数据库中取出来的数据直接使用 JSONObject的put方法放进去,再将这个JSONOject对象使用JSONArray的add()方法添加进去,这样就是一个保存了json对象的数组,在后台将JSONArray对象使用toString()方法传到前台这时前台的接受方式是json ,再将接受的这个数据使用eval()函数转化为json格式的js对象,在使用循环就可以取出其值。
1、前台:
dataType:"json", //返回值类型
success:function(jsons){ //获取数据//alert("成功");var datas= eval(jsons); // 格式转化,将后台传递的string 转化为json对象//其实转化之后获取的是一个json数组,而每一行就是一个后台的对象而这里是 //以json的对象格式存在的//json数组格式:[{"name":"www","age":11,"class":"one"},// {"name":"www2","age":112,"class":"on2e"},// {"name":"www3","age":114,"class":"on4e"}]alert("长度"+datas.length); for(vari=0;i<datas.length;i++){ //循环将其中每个对象的属性取出$("#con").append(datas[i].param1+" "+datas[i].param2 +"<br>");}} ,
2、后台:
try {
PrintWriterout = response.getWriter();
JSONArrayjar = new JSONArray();
// 通过循环每次创建对象并且添加数据并把每一个对象添加到集合中去,
for(inti=0;i<3;i++){
JSONObjectjsonObject = new JSONObject();jsonObject.put("param1","one"+i);jsonObject.put("param2","two"+i);jar.add(jsonObject);
}
out.print(jar.toString());out.flush();
out.close();
二、在后台的JSONObject 对象使用formObject()方法向其中添加一个对象,之后再将其转化为toString()类型,在前台接受方式为json 在前台使用eval()转化不然会出错,但是不能使用循环。
1.前台
dataType:"json", //返回值类型
success:function(jsons){var datas= eval(jsons); //转化格式$("#con").append("<br>"+datas.name +" "+datas.age);
2.后台
JSONObject jsonObject= new JSONObject();
jsonObject.fromObject(u1);
Out.println(jsonObject.fromObject(u1).toString());
或
String sss=jsonObject.fromObject(u1).toString();
out.print(sss);
三、 后台传递一个集合,在前台进行接受输出。
在平时的开发中都会将获取的数据保存在一个集合中如list集合,这时使用 JSONArray 对象的 JSONArrayjsonarray=jar.fromObject(list); fromObject 方法将其从java变成json 数组,这时如果不繁琐 则可以直接将json数组输出,但平时为了在传递的过程中方便我们将json数组转变为string 类型, String strs = jsonarray.toString(); 之后在进行传递 , 在前台我们接受的是tostring () 类型的话我们就要使用eval() 函数进行解析,在遍历输出:
1.前台
dataType:"json", //返回值类型
success:function(jsons){var datas= eval(jsons); //转化格式alert("长度"+datas.length);for(vari=0;i<datas.length;i++){$("#con").append(datas[i].name+" "+datas[i].age +"<br>");} } ,
2.后台
list.add(u1); // 添加u对象
list.add(u2);
JSONArray jar= new JSONArray ();
JSONArray jsonarray=jar.fromObject(list);
Stringstrs = jsonarray.toString();
out.print(jsonarray); //传递数组
out.print(strs); //传递string类型
out.flush();
out.close();
JSON.parse和eval的区别
JS的解析方法共有两种:(json.parse、eval())
var jsonData = '{"data1":"Hello,", "data2":"world!}';
var evalJson=eval('('+jsonData+')');
var jsonParseJson=JSON.parse(jsonData);
这样酒吧jsonData这个JSON格式的字符串转换成了JSON对象。二者区别如下:
var value = 1;
var jsonstr = '{"data1":"hello","data2":++value}';
var data1 = eval_r('('+jsonstr+')');
console.log(data1);//这时value值为2
var data2=JSON.parse(jsonstr);
console.log(data2);//报错
可以看到控制输出台的结果,第一个eval_r()顺利执行,第二个报错了。从上例就可以明显地看出,eval在解析字符串时,会执行该字符串中的代码(这样的后果是相当恶劣的),如上例中,由于用eval解析一个json字符串而造成原先的value的值改变。
比如下面的字符串:
var str = 'alert(1000.toString())';
eval(str);
JSON.parse(str);
用eval可以解析,并且会弹出对话框,而用JSON.parse()则解析不了。 其实alert并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题。
注意:某些低级的浏览器尚不支持JSON.parse(),可以到 https://github.com/douglascrockford/JSON-js/blob/master/json2.js 下载。
转载于:https://my.oschina.net/yongqingfan/blog/486143
JSONObject JSONArray各种用法以及js eval()函数与JSON.parse的区相关推荐
- js html字符串转对象,js eval函数使用,js对象和字符串互转.
js eval函数使用,js对象和字符串互转. JavaScript eval() 函数 JavaScript 全局函数 定义和用法 eval() 函数计算 JavaScript 字符串,并把它作为 ...
- js eval()函数
JS eval()函数 转自:http://www.86822.com/code/zw.asp?id=614 eval()函数 JavaScript有许多小窍门来使编程更加容易. ...
- JS eval函数作用
首先来个最简单的理解 eval可以将字符串生成语句执行,和SQL的exec()类似. eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道 ...
- php中的eval,php eval函数用法—-PHP中eval()函数小技巧 | 学步园
eval 将值代入字符串之中. 语法: void eval(string code_str); 传回值: 无 函式种类: 数据处理 内容说明 本函式可将字符串之中的变量值代入,通常用在处理数据库的数据 ...
- Python 函数用法之(eval函数)
一 .eval函数的简介和语法: eval()函数用来执行一个字符串表达式,并返回表达式的值.还可以把字符串转化为list.tuple.dict.eval函数的语法: eval(expression[ ...
- javascript eval函数解析json数据时为什加上圆括号eval((+data+))
原因很简单:因为在js中{}表示一个语句块(代码段),所有加上"()"表示表达式 转载于:https://www.cnblogs.com/lihongchen/p/4270334. ...
- php json.parse,JSON.parse()与JSON.stringify()和eval()使用方法详解
这次给大家带来JSON.parse()与JSON.stringify()和eval()使用方法详解,JSON.parse()与JSON.stringify()和eval()使用的注意事项有哪些,下面就 ...
- 小程序json字符串取值问题,怎么取出来的是undefined,eval函数不能用?
1.后端返回的值 "{\"msg\":\"InvalidParameterValue.NoFaceInPhoto-图片中没有人脸.\",\" ...
- JQuery eval函数
eval函数语法 转载: http://lxbfly.iteye.com/blog/1213734 eval(codes); eval函数参数 codes -- 字符串形式的表达式或语句 eval函数 ...
最新文章
- 高速学会Mac上托管代码到github(具体解释)
- c语言四则运算实验报告,c语言四则运算实验报告.doc
- C++ 类对象作为类成员
- 调账成功 对账失败处理流程反思
- 优化技巧一、UITableView加载图片
- Software Marketing
- 顶点计划:520日讨论
- linux程序执行时内存情况
- 循环冗余校验CRC及对应例题
- [MCM] MTSP问题的GA求解 多目标优化 (单起点 与 多起点)
- 【算法竞赛入门经典】习题1-4:正弦和余弦
- c语言数据类型转换规律,c语言,数据类型转换
- 鸡年生的男宝宝取什么名字好?为宝宝起名也有小技巧
- ardupilot 关于设备车Rover的学习《3》------模式控制
- this.$nextTick() 学(cai)习(keng)
- Kafka中auto.offset.reset配置项参数为earliest/或者latest的区别
- 基于Python实现的作家风格识别
- matplotlib函数库使用imshow绘制像素图片
- Placement service – placement安装(wallaby-allinone)
- OnTriggerEnter与OnCollisionEnter详解
热门文章
- AD恢复(2)使用授权还原
- 浅谈使用openwave测试的几个注意项
- TiDB 源码阅读系列文章(十八)tikv-client(上)
- android 顺序执行任务
- 实现linux作为server时与windows间的数据同步
- 在.net中使用强类型来读取配置信息
- 连载-第1章绪论 1.2嵌入式处理器
- Alternative PHP Cache ( APC )
- Stack Overflow requires external JavaScript from another domain, which is blocked or failed to load.
- 通过XmlDocument读写Xml文档(转)