2011年3月30日

JSON(JavaScript Object Notation)javscript对象标记,是一种轻量级的数据交换格式。具体的详细基础知识可以参考JSON官网http:/www.json.org/

不说太多废话,直接说说我对JSON的理解吧。

一、JSON的一些基础知识。

JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(keyvalue)。

 

[]”,标识数组,数组内部各个数据之间通过“,”分割,如[“AreaId”:”123””AreaId”:”345”]

很多情况下是对象数组,那就是这样:

[{“AreaId”:”123”},{“AreaId”:”345”}]

 

其实数组也是一个对象,上面的格式也可以写成这样:

{Area”:[{“AreaId”:”123”},{“AreaId”:”345”}]}

这表示一个Area对象,他有两个子数据,每个子数据也是一个对象,每个子对象都是AreaId

 

JSON中字符串和字符的定义格式和一般的类C语言定义是类似的,双引号定义字符串,单引号定义字符。

JSON的键(Key)用双引号括起来,比如上面的“Area“和”AreaId“,都是用双引号括起来的,在一些语言中构造JSON字符串的时候,可以使用转义字符转义双引号。

 

二、javascript操作JSON字符

1、先要区分JSON字符串和JSON对象

JSON字符串:

Var strJSON = “{\“Area\”[{\“AreaId\”:\”123\”},{\“AreaId\”:\”345\”}]}”

其实也可以写成这样:

Var strJSON = ‘{“Area”[{“AreaId”:”123”},{“AreaId”:”345”}]}’

这表示一个JSON字符串,由于在Js中单引号和双引号都可以表示一个字符串,所以上面第一个使用双引号和第二个使用单引号的都表示一个JSON字符串。

下面看看JSON对象

Var JSON = {“Area”[{“AreaId”:”123”},{“AreaId”:”345”}]},

看到了吧,JSON对象最外面是没有单引号或者双引号的,这就表示一个JSON对象。

 

2JSON字符串向JSON对象转换

直接只用JSeval()方法。

如上面的strJSON字符串可以这样转换为JSON对象

Var JSON = eval”(”+strJSON+”)”),

这样就转换为JSON对象了。

 

据说使用jseval()方法有安全上的问题,所以好多人推荐使用JSON官网的json.js包进行转换,但是我去JSON官网下载这个包的时候,发现只有一句话那就是alert(’error’)。不知什么原因,哪位有知道的希望告知一下。

 

由于使用的JQuery,而且听说Jquery和json.js有冲突,于是参考JQuery json.js 冲突问题这篇文章下载了处理jsonjquery插件。

那个插件挺好用的,比如以上的把json字符串转换为JSON对象:

Var JSON = $.parseJSON(strJSON);

这样就可以使用JSON对象了。

其实在Jquery1.4.1之后JQuery也已经添加了对JSON处理的方法,方法名也是parseJSON(str),具体使用也是和上面一样,如果你使用的是1.4.1之后的版本那就不用上面的那个插件了,直接用那个方法就可以了。

如果要是使用Jquery的ajax方法,也可以直接使用getJSON方法,就可以直接获得JSON对象,无需转换。

3、处理JSON数据

获得JSON对象后,就应该处理JSON对象了,比如通过前面的那个strJSON字符串获得JSON对象之后,可以这样获得JSON对象的值

Var firstAreaId = JSON.Area[0].AreaId.

JSON是刚才生成的JSON对象,Area[0]表示JSON对象的第一个Area对象(因为Area对象有两个子对象),AreaId就是要获得子对象的数据。

好了,就写这些吧,如果有不对的地方,请大家指正。

posted @ 2011-03-30 09:51 acles 阅读(1616) 评论(0) 编辑


2011年3月26日


  AVD默认路径在C:\Documents and Settings\用户名\.android,C盘的空间占据很大,想移到其他地方。
1.打开系统属性-->环境变量—>在“系统变量”中选择“新建”-->变量名为 "ANDROID_SDK_HOME”,
然后 把变量值改为你想把AVD所在的".android”文件夹放置的位置,比如把它放在 Android SDK包中,值为:"E:\android-sdk-windows”。
2.进入E:\android-sdk-windows\.android\avd,打开2.1.ini,修改path=E:\android-sdk-windows\.android\avd\2.1.avd


2.2版本的,不需要修改path了,已经自动修改好了。

posted @ 2011-03-26 14:32 acles 阅读(1235) 评论(0) 编辑


2011年3月18日

很多网站保存密码的方式是把密码进行哈希化之后,然后保存进数据库。网上也一直再说哈希化的密码是无法破解的,确实按照哈希的原理肯定无法破解的。
因为哈希本来就不是加密,只是把文本进行了特殊的处理。
听说哈希之后,即使密码被获得了,用户账户也不会被破解,这是真的吗?难道对密码进行哈希就真的那么安全吗?
最近在研究微软的企业库,企业库提供了几种加密算法,其中有一种就有哈希算法。于是怀着对哈希之后密码无法破解的极度安全的崇敬之情,使用了哈希算法
作为用户密码的加密方式。
实验了几个用户名和密码之后,发现数据库中的密码确实都被哈希化了,那样的密码确实不好破解,于是就打算一直使用哈希算法。
无意中,我在数据库中把A用户的经过哈希的密码复制到B用户的密码字段上,然后我在页面登陆框中输入B用户的用户名以及A用户的密码,发现登陆成功。
由这点我想到,如果一个系统使用哈希算法对密码进行加密,这是不是一中破解的方法呢。
步骤如下:
1、首先注册此系统的一个用户获得用户名和自己的密码,系统的数据库中存的是你注册的用户名的密码,而且是经过哈希的。
2、好多系统在用户注册之前会对用户名进行检测,看看用户名是否可用,在此可通过此法获得其他人的用户名,或者你已经知道了一个你想破解的用户名。
3、这一步比较复杂,需要很高深的知识,或者你庆幸这个系统中存在一定的sql注入漏洞,或者你已经获得了这个系统的数据库(其实关键在这一步,不过
这一步也很难去实现。

4、通过sql语句把你想要破解的用户的密码更新为你注册的用户的密码。
5、进入登陆页面,输入你破解的用户的用户名和你的用户名的密码,不出问题,应该可以以那个账号进入系统了。

如果你要想使用此方法进行破解,你首先的能在系统的数据库上运行你的sql语句,这一点对待大多数的系统还是比较难的,不过如果对待能进入数据库的人员想破解,那就没办法了。

以上只是在使用哈希算法进行加密的时候的一点小小的遐想,大家不要妄自推测,不过还是提醒大家即使加密了,也要小心啊。

如果纯粹的使用Hash算法进行加密,如果真遇到以上情况,系统还是很危险的,有没有好的加密方法呢,那位能告知一下啊。

 

posted @ 2011-03-18 15:55 acles 阅读(348) 评论(0) 编辑


2011年2月23日

.net的标准化查询确实是个好东西,生了很多事。

使用like的时候语句应该这样写:

“Select * From table Where field like ’%‘+@field+’%‘”;

而不是

 

“Select * From table Where field like %@field%”

 

不知道具体原因,有知道的可以告知,谢谢。

 

 

posted @ 2011-02-23 15:12 acles 阅读(26) 评论(0) 编辑


2011年2月16日

div显示上下左右滚动条

<div style="width:260px;height:120px; overflow:scroll; border:1px solid;"> 这里是你要显示的内容 </div>

 

div显示上下滚动条的css代码

<div style="width:260px;height:120px; overflow-y:scroll; border:1px solid;"> 这里是你要显示的内容 </div>

 

div显示左右滚动条的css代码

<div style="width:260px;height:120px; overflow-x:scroll; border:1px solid;"> 这里是你要显示的内容 </div>
 

修改滚动条颜色的代码

SCROLLBAR-FACE-COLOR(立体滚动条凸出部分的颜色)
SCROLLBAR-HIGHLIGHT-COLOR(滚动条空白部分的颜色)
SCROLLBAR-SHADOW-COLOR(立体滚动条阴影的颜色)
SCROLLBAR-ARROW-COLOR(上下按钮上三角箭头的颜色)
SCROLLBAR-BASE-COLOR(滚动条的基本颜色)
SCROLLBAR-DARK-SHADOW-COLOR(立体滚动条强阴影的颜色)
 


posted @ 2011-02-16 17:15 acles 阅读(482) 评论(0) 编辑


2010年11月18日

摘要: 最近用DotNet2.0+sql server 2005做了一个网站,网站在本机以及自有的服务器上运行良好,但是放到Godaddy空间上就一直出现以下错误: 500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed. 即使访问...阅读全文

posted @ 2010-11-18 15:03 acles 阅读(366) 评论(0) 编辑


2010年8月28日

摘要: 在使用codesmith写模板生成代码时,遇到了两种中文乱码的问题:模板内中文乱码,模板生成的文件中中文乱码。一、模板内中文乱码:使用codesmith写模板时,保存后中文会变成乱码,此解决方法,网上很好搜。在此在记录一下。1、打开CodeSmith Studio 2、打开菜单Tools--〉Options 3、确认Enable unicode support钩上 4、修改你的CodeProjec...阅读全文

posted @ 2010-08-28 18:22 acles 阅读(577) 评论(0) 编辑


2010年6月30日

摘要: 循环:#foreach ($i in [1..30])statement#end条件:(1)#if()#end(2)#if()#elseif#else#end阅读全文

posted @ 2010-06-30 14:57 acles 阅读(204) 评论(0) 编辑


2010年4月15日

摘要: 两种解决方案:(1)在Div中放1个空的iframe HTML code (2)把DropDownList用Span包裹起来HTML code阅读全文

posted @ 2010-04-15 17:03 acles 阅读(274) 评论(0) 编辑


2010年3月9日

摘要: rel是有进有出,out是只出不进阅读全文

posted @ 2010-03-09 12:32 acles 阅读(8) 评论(0) 编辑


posts - 25, comments - 12, trackbacks - 0, articles - 0

Copyright © acles