在将javascript对象转换为JSON的时候,有一点是须要咱们注意的: 若是对象中包含有值为函数和日期的属性,JSON会忽略值为函数的属性,并将值为日期的属性转换为字符串。javascript
http://www.cnblogs.com/damonlan/archive/2012/03/13/2394787.htmlhtml
被转换的内容能够是 对象object, 也能够是数组, 只是, 数组的话, 就不输出前面的key了...java
即便是 经过 var o = new Object(); o.name="foo"; 的方式 建立的对象, 转换成 json时, 仍然可以显示, 输出 key: value, 能够依然是有效的..c++
replacer能够是函数,或者数组 . 更多的是 函数, 表示 要处理 前面的 的key, value. 如:web
var jsonStr = JSON. stringify ( jsObj, function(key, value){ return value.toString().toUpperCase(); });
replacer 若是是数组, 第一个参数也是数组的化, 就只显示第一个参数; 若是第一个是 new Object()对象 的化, ...json
spacer表示 分隔符号. 若是是数字, 表示 最多 能够 缩进 10个 字符... 若是是 \r, 就用回车分隔, 若是是其余字符串....分隔...vim
http://www.cnblogs.com/dolphinX/p/3270779.html数组
js中是有 "对象"的数据类型的! typeof .... : 返回的 是 Object.函数
js对象的定义方式:spa
var jsObj = new Object();
js的内置对象?
js是有一些内置对象的, 如:Array, Date, String. 功能强大, 使用简单, "可是在处理一些复杂的逻辑时, 内置对象就显得无能为力了, 就须要 用户本身定义 对象了.
内置对象的使用 是: 若是是类方法或 属性, 直接使用 类名来 reference: 如: Array.staticAttr? 若是是类的实例的 方法 , 就要 先实例化 建立实例对象, 而后再使用 实例方法.
能够认为, 这些内置对象, 系统已经给咱们定义好了的, 属性和方法都写好了的, 用不着咱们再去写了, 你也能够 本身 写一个 同名的 Array, Date类, 若是确实有必要的话!!
JSON 是js的内置对象, 意思就是 js object notation,(js 对象标记). 能够认为 JSON 是一种js的数据类型. 如Array 生成返回的是一个 数组! 实际上 JSON 表现是一种 字符串的形式, 不是对象的形式? 准确的说法是: JSON string:
parse: 是动词, 不是parser , 是解析 json格式的 "字符串", 将 jsonStr -> jsObj.
jsObj -> jsonStr: var jsObj = {name: "foo", age: 20}; var jsonStr = JSON.stringify(jsObj); // stringify 表示 字符串 化 , 说的很明显的, 就是代表了: JSON是一种 字符串! typeof jsonStr: JSON? jsonObj -> jsObj: var jsObj = JSON.parse(jsonStr); // typeof jsObj: Object?
你只看前面那个数字, 前面那个数字, 是当前光标所在的位置!(至于为何是一个范围, 还不知道?)
http://www.cnblogs.com/wangjunqiao/p/5718466.html , 说: JSON.parse(jsonStr)会解析 字符串 格式, 若是格式不正确, 即key, val没有用 双引号括起来, 等等语法错误, 会提示解析错误. 可是eval(...) 会解析其中 参数 的 任意 字符串, 不会进行格式 检查, 并且, 最可怕的是, 它会去 执行字符串, 即, 若是字符串是能够执行的js脚本 , 则 这个脚本将会执行! 因此, 若是恶意用户, 向网页中注入 恶意代码 脚本,(也有多是 开发者, 那么你访问 网页的 时候, 就会着了...