1.json的字符串与对象转换 $.parseJson(str)与JSON.parse(str)

返回值是true.另:json对象和字符串的相互转换

  1. JSON.stringify(obj) JSON对象转为字符串。
  2. JSON.parse(string) 将字符串转为JSON对象格式。

2.js中eval()和$.parseJSON()的区别

之前自己一直对ajax不是特别的熟悉,所以一般都很少用这个去写功能,但是最近这个项目中用到了,用ajax异步传数据,json传数据这个时候就需要去解析传过来的数据了,eval()和$.parseJSON()都是可以解析数据的,但是他们也是有区别的;

1:安全性

例:

var str = 'alert(1000.toString())';

eval(str);

JSON.parse(str);

用eval可以解析,并且会弹出对话框,而用JSON.parse()则解析不了。 其实alert并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题。

注意:某些低级的浏览器尚不支持JSON.parse()

2:JSON.parse()解析的必须是json格式的字符串要不报错,而eval()则没有这么严格

这里“json格式的字符串”是指要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号、字符串值也必须用双引号。

如果传入一个格式不"完好"的JSON字符串将抛出一个JS异常

json的解析方法共有两种:eval 和 JSON.parse(),如:

var jsonStr= '{"name":"lulu", "sex":"female"}';

var evalJson=eval('('+jsonStr+')');

var jsonParseJson=JSON.parse(jsonStr);

这样就把json格式的字符串jsonStr转换成了JSON对象。

但是区别是:

var age = 27;

var jsonStr= '{"name":"lulu", "sex":"female","age":++age}';

从上面eval()函数的用法我们可以看出eval()函数在解析json格式的字符串时要加上圆括号如eval('('+jsonStr+')'),这是因为:

eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。

var evalJson=eval('('+jsonStr+')'); //不报错此时age的值是28

var jsonParseJson=JSON.parse(jsonStr);//报错

注意:最近发现有的时候eval()转数组的时候不起作用,然后百度查了发现这样写就可以了eval('('+string+')');

3.errorMsg

  1. $(document).ready(function() {
  2. $("#submitBtn").click(function(e) {
  3. e.preventDefault();
  4. var obj = $(this);
  5. var name = $("input[name='loginname']").val();
  6. var passwd = $("input[name='loginpasswd']").val();
  7. $.ajax({
  8. url : "http://localhost:8080/star/loginCheck/",
  9. type : "POST",
  10. contentType: "application/json;charset=utf-8",
  11. data : JSON.stringify({'name':name,'passwd':passwd}),
  12. dataType : "text",
  13. success : function(result) {
  14. if (result == "success") {
  15. obj.parents('form').submit();
  16. } else {
  17. }
  18. },
  19. error:function(msg){
  20. $(".notice").html('Error:'+msg);
  21. }
  22. })
  23. return false;
  24. })
  25. });
  26. </script>

或:jquery ajax POST 例子详解

4.JavaScript的eval()函数

通过eval()转为json对象

  1. var strJSON='{"webName":"蚂蚁部落","url":"softwhy.com","age":"2"}';
  2. var jsonObj=eval("("+strJSON+")");
  3. console.log(jsonObj.webName);

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码

  1. 提示:虽然 eval() 的功能非常强大,但在实际使用中用到它的情况并不多。
  2.  
  3. 实例
  4. 例子 1
  5. 在本例中,我们将在几个字符串上运用 eval(),并看看返回的结果:
  6.  
  7. <script type="text/javascript">
  8.  
  9. eval("x=10;y=20;document.write(x*y)")
  10.  
  11. document.write(eval("2+2"))
  12.  
  13. var x=10
  14. document.write(eval(x+17))
  15.  
  16. </script>
  17. 输出:
  18.  
  19. 200
  20. 4
  21. 27
  22. 例子 2
  23. 看一下在其他情况中,eval() 返回的结果:
  24.  
  25. eval("2+3") // 返回 5
  26. var myeval = eval; // 可能会抛出 EvalError 异常
  27. myeval("2+3"); // 可能会抛出 EvalError 异常
  28. 可以使用下面这段代码来检测 eval() 的参数是否合法:
  29.  
  30. try {
  31. alert("Result:" + eval(prompt("Enter an expression:","")));
  32. }
  33.  
  34. catch(exception) {
  35. alert(exception);
  36. }

5.获取JSON格式的字符串各个属性对应的值

6.JSON与Bean互转

  1. JSON 字符串 java 对象的转换
  2.  
  3. 1. java 对象列表转换为json对象数组,并转为字符串
  4.  
  5. JSONArray array = JSONArray.fromObject(list);
  6. String jsonstr = array.toString();
  7.  
  8. 2. java对象转换成json对象,并转化为字符串
  9.  
  10. JSONObject object = JSONObject.fromObject(user);
  11. Log4jInit.ysulogger.debug(object.toString());
  12.  
  13. 3.JSON字符串转换为JAVA 对象数组
  14. JSONArray json = JSONArray.fromObject(userStr);//userStr是json字符串
  15. List<User> users= (List<User>)JSONArray.toCollection(json, User.class);
  16.  
  17. 4.JSON字符串转换为JAVA 对象
  18.  
  19.   JSONObject jsonobject = JSONObject.fromObject(jsonStr);
  20.   User user= (User)JSONObject.toBean(object,User.class);

7.JSONObject序列化包含Date类型数据的Java对象

8.net.sf.json.JSONException: There is a cycle in the hierarchy!的解决办法

9.jquery对json 键值对或数组的增加、删除、遍历操作

10.获取json指定key的值

  1. <script type="text/javascript">
  2. getJson('age');
  3.  
  4. function getJson(key){
  5. var jsonObj={"name":"傅红雪","age":"24","profession":"刺客"};
  6. //1、使用eval方法
  7. var eValue=eval('jsonObj.'+key);
  8. alert(eValue);
  9. //2、遍历Json串获取其属性
  10. for(var item in jsonObj){
  11. if(item==key){ //item 表示Json串中的属性,如'name'
  12. var jValue=jsonObj[item];//key所对应的value
  13. alert(jValue);
  14. }
  15. }
  16. //3、直接获取
  17. alert(jsonObj[''+key+'']);
  18. }
  19. </script>

清理收藏夹中的json的更多相关文章

  1. 清理收藏夹中的CSS

    1.去掉元素的属性, 例如宽度 #blog-calendar { width: initial !important; }

  2. 骚操作!曾经爱过!用 Python 清理收藏夹里已失效的网站

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 小詹&有乔木 PS:如有需要Python学习资料的小伙伴可 ...

  3. labelme连续将文件夹中的json文件进行可视化的指令

    for /r C:\Users\Fourmi\Desktop\ZP0 %i in (*.json) do labelme_json_to_dataset %i

  4. Python网络爬虫实战(五)批量下载B站收藏夹视频

    我们除了爬取文本信息,有的时候还需要爬媒体信息,比如视频图片音乐等.就拿B站来说,我的收藏夹内的视频可能随时会失效,所以把它们下载到本地是非常保险的一件事. 对于这种大量列表型的数据,可以猜测B站收藏 ...

  5. 基于CefSharp开发(七)浏览器收藏夹菜单

    一.Edge收藏夹菜单分析 如下图所示为Edge收藏夹菜单, 点击收藏夹菜单按钮(红框部分)弹出收藏夹菜单窗体,窗体中包含工具栏(绿框部分)和树型菜单(黄框部分) 工具栏按钮功能分别为添加当前网页到根 ...

  6. 基于python对B站收藏夹按照视频发布时间进行排序

    基于python对B站收藏夹按照视频发布时间进行排序 前言 在最一开始,我的B站收藏一直是存放在默认收藏夹中,但是随着视频收藏的越来越多,没有分类的视频放在一起,想在众多视频中找到想要的视频非常困难, ...

  7. 收藏Javascript中常用的55个经典技巧

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border oncontextmenu ...

  8. 保存知乎收藏夹功能的NodeJS版本

    前两天发现知乎收藏夹中的答案正在不断减少..看来需要保存一下了,但之前别人的方式是用chrome插件(浏览器无法自动保存本地文件)+wget前后端配合来完成这个工作的,而且还有一些缺点(比如保存的ht ...

  9. 在网页标题栏上和收藏夹显示网站logo

    第一步,准备一个图标制作软件. 首先您必须了解所谓的图标(Icon)是一种特殊的图形文件格式,它是以.ico 作为扩展名.普通的图像设计软件无法使用这种格式,所以您需要到下载一个ico图标工具,本站常 ...

随机推荐

  1. IDEA下创建Spring项目

    IDEA下创建Java SE Spring项目示例 1.创建项目 第4步:是否自动创建空的Spring容器配置文件,默认文件名是spring-config.xml.勾不勾选都行,如果没勾选,后面要自己 ...

  2. scrapy xpath去除空格

    content = response.xpath("normalize-space('//img/@src')")

  3. 【python】文件操作

    基本语法 open("文件名","访问方式") # 1. 打开文件 file = open("README.txt") # 2. 读取文件内 ...

  4. Oracle 11g RAC to RAC ADG搭建(一)采用rman备份恢复方式

    (一)基础环境   主库 备库 操作系统 RedHat6.7 RedHat6.7 服务器名称 primarydb1primarydb2 standbydb1standbydb2 IP地址规划 192. ...

  5. web之表单form

    表单是我们平常编写Web应用常用的工具,表单(<form>)用来收集用户提交的数据,发送到服务器.比如,用户提交用户名和密码,让服务器验证,就要通过表单.表单是一个包含表单元素或控件的区域 ...

  6. Pthon魔术方法(Magic Methods)-bool

    Pthon魔术方法(Magic Methods)-bool 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.bool方法 __bool__: 内建函数bool(),或者对象放在逻 ...

  7. ztree根据关键字模糊搜索

    html页面需要引入以下资源 <!-- jquery包,ztree依赖jquery --> <script type="text/javascript" src= ...

  8. UVA1537 Picnic Planning(思维+最小生成树)

    将1号点从图中去掉过后,图会形成几个连通块,那么我们首先可以在这些连通块内部求最小生成树. 假设有\(tot\)个连通块,那么我们会从1号点至少选\(tot\)个出边,使得图连通.这时我们贪心地选择最 ...

  9. 192-0070 Final project proposal

    Final project proposal192-00701 – Summary of your project.It is based on an existing game which is c ...

  10. python列表相关函数

    1.python中可用于列表的函数 (1)cmp(list1, list2) 比较两个列表的元素 (2)len(list) 列表元素个数 (3)max(list) 返回列表元素最大值 (4)min(l ...