json相关的一些用法

一. json可以表示3种类型的值:

简单值 、 对象、 数组

表示对象时:》1. 没有变量的概念 ,所以不用申明变量

》2. 没有末尾结束时的分号 ;

》3. 对象属性并需要加 双引号

》4. 同一对象中绝不能出现两个同名属性

二.json 的两个方法:

JSON.stringify (object); , JSON.parse (object);

在简单情况下,以上两个方法,用于把javascript对象序列化, 和把JSON字符串解析为原生javascript的值

eg:执行如下代码,会在浏览器显示 {"title":"A book title","authors":["ren jing"],"edition":3,"year":2011} 此结果

 1     var book = {
 2         "title" : "A book title",
 3         "authors" : [
 4             "ren jing"
 5         ],
 6         edition : 3,
 7         year : 2011
 8     };
 9     var jsonText = JSON.stringify(book);
10     document.write(jsonText);

1. 对于详细序列化 javascript 使用 JSON.stringify (object )时 ,还可再传入两个参数;

》  第一个参数 为过滤器 ,可以为数组:

1 var jsonText = JSON.stringify(book,["title","edition"]);

也可以为函数,当传入的为函数时,传入的函数接收两个参数,属性名和属性值:

 1     var jsonText = JSON.stringify(book,function(key,value){
 2         switch(key){
 3             case "authors":
 4                 return value.join(",");
 5             case "year":
 6                 return 5000;
 7             case "edition":
 8                 return undefined;
 9             default:
10                 return value;
11         }
12     });
13     alert(jsonText);

运行结果为:{"title":"A book title","authors":"ren jing","year":5000}

》第二个参数是一个选项,表示是否在JSON字符串中保留缩进,用于控制结果中的缩进和空白符。

若这个参数是一个数值,那它表示每个级别缩进的空格数(最大缩进空格数为10,所有大于10的数会自动转换为10):

1 var jsonText = JSON.stringify(book,null,10);

若缩进参数是一个字符串而非数值,则这个字符串将在JSON字符串中被用作缩进字符(不再使用空格,最大限制依然为10):

1 var jsonText = JSON.stringify(book,null,"- -"); 

有时候我们可以定义一个toJSON()方法,返回其自身的JSON数据格式,更好的进行自定义序列化的需求。

  对于序列化对象的顺序,我们应该注意的是:

(1)如果存在toJSON()方法且能通过它取得有效的值,则调用该方法。否则,返回对象本身。

(2)如果提供了第二个参数,应用这个函数过滤器。传入函数过滤器的值是第(1)步返回的值。

(3)对于第(2)步返回的每个值进行相应的序列化。

(4)如果提供了第三个参数,执行相应的格式化。

2.对于解析json数据,也可以接受另一个参数,该参数是一个函数:

 1     var book = {
 2         "title" : "A book title",
 3         "authors" : [
 4             "ren jing"
 5         ],
 6         edition : 3,
 7         year : 2011,
 8         releaseDate : new Date(2015,07,1)
 9     };
10     var jsonText = JSON.stringify(book);
11     var bookCopy = JSON.parse(jsonText,function(key,value){
12         if(key =="releaseDate"){
13             return new Date(value);
14         }else{
15             return value;
16         }
17     })
18     alert(bookCopy.releaseDate.getFullYear());

通过添加releaseDate属性,通过序列化将数据序列化为有效的JSON字符串后 ,再进行解析,运行结果为:2015

(将此内容作为自己的个人笔记,参考来源于javascript高级程序设计 第三版)

时间: 2024-10-01 02:21:46

json相关的一些用法的相关文章

JSON相关代码

string json1 = @"{ ""publicaccount"": { ""id"": ""1"", ""name"": ""abc"" }, ""root"": { ""messages"": [ { &quo

jquery下json数组的操作用法实例

jquery下json数组的操作用法实例: jquery中操作JSON数组的情况中遍历方法用的比较多,但用添加移除这些好像就不是太多了. 试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像JSON数据是以数组的形式出现的,下面是一些实例,仅供参考. 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限

Spring MVC Json相关问题

以下是Spring MVC  一个Controller下的方法,返回的是Json 1: @ResponseBody 2:返回 Map<String,Object> 以下是代码: @RequestMapping("/checkUser") @ResponseBody public Map<String,Object> checkUser( String name,String param, HttpServletRequest request){ Map<S

JSON相关基础知识

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON Vs XML: 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便 5.JSON对数据

JSON相关知识,转载:删除JSON中数组删除操作

一:JSON是什么 JSONg格式:对象是一个无序的“名称/值”对的集合. 对象以括号开始,括号结束. 名称冒号分隔值. "名称/值"之间用逗号分隔 例: var people = {     "programmers": [{         "firstName": "Brett",         "lastName": "McLaughlin",         "em

json相关

json有关的注意事项: ①jsonObject对象 JSONObject jsonRequest = new JSONObject(object.toString());  中只能是string或者bean而不是object.如果只是存入object则结果为空, 如果加一个tostring则能正常解析.

模拟QQ侧滑控件 实现三种界面切换效果(知识点:回调机制,解析网络json数据,fragment用法等)。

需要用到的lib包 :解析json  gson包,从网络地址解析json数据成String字符串的异步网络解析工具AsyncHttpClient等 下载地址:点击下载 Xlistview 下拉上拉第三方框架  点击下载 侧滑菜单的lib  点击下载 1 package com.lixu.testjsonall; 2 3 import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; 4 import com.jeremyfeinstein.slid

grep egrep及相关的正则表达式用法

一.什么是正则表达式 在编写处理字符串的时候,经常需要查询某些符合复杂规则的字符串,正则表达式就是描述这些规则的工具. 正则表达式有基本表达式和扩展正则表达式.扩展正则表达式,是基本正则表达式的补充.有些元字符,稍有不同. 二.正则表达式的组成部分: 由元字符及正常字符所书写,元字符不表达字符本意,而表达控制或通配的功能: 2.1基本正则表达式/扩展正则表达式元字符 字符匹配:[基本/扩展正则表达式元字符相同] 基本/元字符: 扩展/元字符: 说明: . . 匹配任意单个字符 [] [] 匹配指

与 JSON 相关的一些操作 (项目中用到一部分,后续逐渐完善)

1.JSON 打印 console.log(JSON.stringify(data, null, 4)); 2.JSON 格式判断 var isjson = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length; 3.JSON 转义 (当我们在多行文本框中对JSON