清理收藏夹中的json
1.json的字符串与对象转换 $.parseJson(str)与JSON.parse(str)
返回值是true.另:json对象和字符串的相互转换
- JSON.stringify(obj) 将JSON对象转为字符串。
- 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
- $(document).ready(function() {
- $("#submitBtn").click(function(e) {
- e.preventDefault();
- var obj = $(this);
- var name = $("input[name='loginname']").val();
- var passwd = $("input[name='loginpasswd']").val();
- $.ajax({
- url : "http://localhost:8080/star/loginCheck/",
- type : "POST",
- contentType: "application/json;charset=utf-8",
- data : JSON.stringify({'name':name,'passwd':passwd}),
- dataType : "text",
- success : function(result) {
- if (result == "success") {
- obj.parents('form').submit();
- } else {
- }
- },
- error:function(msg){
- $(".notice").html('Error:'+msg);
- }
- })
- return false;
- })
- });
- </script>
4.JavaScript的eval()函数
通过eval()转为json对象
- var strJSON='{"webName":"蚂蚁部落","url":"softwhy.com","age":"2"}';
- var jsonObj=eval("("+strJSON+")");
- console.log(jsonObj.webName);
eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码
- 提示:虽然 eval() 的功能非常强大,但在实际使用中用到它的情况并不多。
- 实例
- 例子 1
- 在本例中,我们将在几个字符串上运用 eval(),并看看返回的结果:
- <script type="text/javascript">
- eval("x=10;y=20;document.write(x*y)")
- document.write(eval("2+2"))
- var x=10
- document.write(eval(x+17))
- </script>
- 输出:
- 200
- 4
- 27
- 例子 2
- 看一下在其他情况中,eval() 返回的结果:
- eval("2+3") // 返回 5
- var myeval = eval; // 可能会抛出 EvalError 异常
- myeval("2+3"); // 可能会抛出 EvalError 异常
- 可以使用下面这段代码来检测 eval() 的参数是否合法:
- try {
- alert("Result:" + eval(prompt("Enter an expression:","")));
- }
- catch(exception) {
- alert(exception);
- }
5.获取JSON格式的字符串各个属性对应的值
6.JSON与Bean互转
- JSON 字符串 与 java 对象的转换
- 1. 把java 对象列表转换为json对象数组,并转为字符串
- JSONArray array = JSONArray.fromObject(list);
- String jsonstr = array.toString();
- 2. 把java对象转换成json对象,并转化为字符串
- JSONObject object = JSONObject.fromObject(user);
- Log4jInit.ysulogger.debug(object.toString());
- 3.把JSON字符串转换为JAVA 对象数组
- JSONArray json = JSONArray.fromObject(userStr);//userStr是json字符串
- List<User> users= (List<User>)JSONArray.toCollection(json, User.class);
- 4.把JSON字符串转换为JAVA 对象
- JSONObject jsonobject = JSONObject.fromObject(jsonStr);
- 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的值
- <script type="text/javascript">
- getJson('age');
- function getJson(key){
- var jsonObj={"name":"傅红雪","age":"24","profession":"刺客"};
- //1、使用eval方法
- var eValue=eval('jsonObj.'+key);
- alert(eValue);
- //2、遍历Json串获取其属性
- for(var item in jsonObj){
- if(item==key){ //item 表示Json串中的属性,如'name'
- var jValue=jsonObj[item];//key所对应的value
- alert(jValue);
- }
- }
- //3、直接获取
- alert(jsonObj[''+key+'']);
- }
- </script>
清理收藏夹中的json的更多相关文章
- 清理收藏夹中的CSS
1.去掉元素的属性, 例如宽度 #blog-calendar { width: initial !important; }
- 骚操作!曾经爱过!用 Python 清理收藏夹里已失效的网站
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 小詹&有乔木 PS:如有需要Python学习资料的小伙伴可 ...
- labelme连续将文件夹中的json文件进行可视化的指令
for /r C:\Users\Fourmi\Desktop\ZP0 %i in (*.json) do labelme_json_to_dataset %i
- Python网络爬虫实战(五)批量下载B站收藏夹视频
我们除了爬取文本信息,有的时候还需要爬媒体信息,比如视频图片音乐等.就拿B站来说,我的收藏夹内的视频可能随时会失效,所以把它们下载到本地是非常保险的一件事. 对于这种大量列表型的数据,可以猜测B站收藏 ...
- 基于CefSharp开发(七)浏览器收藏夹菜单
一.Edge收藏夹菜单分析 如下图所示为Edge收藏夹菜单, 点击收藏夹菜单按钮(红框部分)弹出收藏夹菜单窗体,窗体中包含工具栏(绿框部分)和树型菜单(黄框部分) 工具栏按钮功能分别为添加当前网页到根 ...
- 基于python对B站收藏夹按照视频发布时间进行排序
基于python对B站收藏夹按照视频发布时间进行排序 前言 在最一开始,我的B站收藏一直是存放在默认收藏夹中,但是随着视频收藏的越来越多,没有分类的视频放在一起,想在众多视频中找到想要的视频非常困难, ...
- 收藏Javascript中常用的55个经典技巧
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border oncontextmenu ...
- 保存知乎收藏夹功能的NodeJS版本
前两天发现知乎收藏夹中的答案正在不断减少..看来需要保存一下了,但之前别人的方式是用chrome插件(浏览器无法自动保存本地文件)+wget前后端配合来完成这个工作的,而且还有一些缺点(比如保存的ht ...
- 在网页标题栏上和收藏夹显示网站logo
第一步,准备一个图标制作软件. 首先您必须了解所谓的图标(Icon)是一种特殊的图形文件格式,它是以.ico 作为扩展名.普通的图像设计软件无法使用这种格式,所以您需要到下载一个ico图标工具,本站常 ...
随机推荐
- IDEA下创建Spring项目
IDEA下创建Java SE Spring项目示例 1.创建项目 第4步:是否自动创建空的Spring容器配置文件,默认文件名是spring-config.xml.勾不勾选都行,如果没勾选,后面要自己 ...
- scrapy xpath去除空格
content = response.xpath("normalize-space('//img/@src')")
- 【python】文件操作
基本语法 open("文件名","访问方式") # 1. 打开文件 file = open("README.txt") # 2. 读取文件内 ...
- Oracle 11g RAC to RAC ADG搭建(一)采用rman备份恢复方式
(一)基础环境 主库 备库 操作系统 RedHat6.7 RedHat6.7 服务器名称 primarydb1primarydb2 standbydb1standbydb2 IP地址规划 192. ...
- web之表单form
表单是我们平常编写Web应用常用的工具,表单(<form>)用来收集用户提交的数据,发送到服务器.比如,用户提交用户名和密码,让服务器验证,就要通过表单.表单是一个包含表单元素或控件的区域 ...
- Pthon魔术方法(Magic Methods)-bool
Pthon魔术方法(Magic Methods)-bool 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.bool方法 __bool__: 内建函数bool(),或者对象放在逻 ...
- ztree根据关键字模糊搜索
html页面需要引入以下资源 <!-- jquery包,ztree依赖jquery --> <script type="text/javascript" src= ...
- UVA1537 Picnic Planning(思维+最小生成树)
将1号点从图中去掉过后,图会形成几个连通块,那么我们首先可以在这些连通块内部求最小生成树. 假设有\(tot\)个连通块,那么我们会从1号点至少选\(tot\)个出边,使得图连通.这时我们贪心地选择最 ...
- 192-0070 Final project proposal
Final project proposal192-00701 – Summary of your project.It is based on an existing game which is c ...
- python列表相关函数
1.python中可用于列表的函数 (1)cmp(list1, list2) 比较两个列表的元素 (2)len(list) 列表元素个数 (3)max(list) 返回列表元素最大值 (4)min(l ...