认识javascript也不短的时间了,可是这个用法说实在的,我还是第一次见过,惭愧啊惭愧啊。于是乎,在网上找了写资料,写了些例子 希望能给园子们一些帮助。

作用:这个函数的作用主要是为了系列化对象的。

可能有些人对系列化这个词过敏,我的理解很简单。就是说把原来是对象的类型转换成字符串类型(或者更确切的说是json类型的)。就这么简单。打个比方说,你有一个类,那么你可以通过这个方法转换成相应的json类型的。很简单吧。

接着看。

语法:

JSON.stringify(value [, replacer] [, space])

value:是必须要的字段。就是你输入的对象,比如数组啊,类啊等等。

replacer:这个是可选的。它又分为2种方式,一种是方法,第二种是数组。

情况一:我们先说数据,通过我们后面的实验可以知道,它是和第一个有关系的。一般来说,我们系列化后的结果是通过键值对来进行表示的。

比如说:

name:"lan",age:25

这种形式。

所以,如果这种形式的话,如果第二个的值在第一个存在,那么的话就以第二个的值做key,第一个值为value进行表示,如果不存在,sorry,忽略。【是不是有点抽象,我也这么觉得,不过你等一下看实验 就OK了。。呼呼。】

情况二:如果是方法,那很简单,就是说把系列化后的每一个对象(记住 是每一个)传进方法里面进行处理。

space:很好理解,用什么来做分隔符的。

1.如果省略的话,那么显示出来的值 就没有分隔符。直接输出来

2.如果是一个数字的话,那么它就定义缩进几个字符,当然 如果大于10 ,则最大值为10.

3.如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。

4.如果仅仅是字符串,OK,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符。

开始用实例说明;

1.只有一个参数的情况下:

var obj={

webName:"脚本之家",

url:"jb51.net",

age:"2"

}

var str=JSON.stringify(obj)

console.log(str);

上面的代码实现了转换功能,这里采用的是JSON.stringify(),这是ECMAScript5新增的方法。

存在一定的浏览器兼容性问题,具体如下:

(1).IE8和IE8以上浏览器支持此方法。

(2).谷歌浏览器支持此方法。

(3).火狐浏览器支持此方法。

(4).opera浏览器支持此方法。

(5).Safria浏览器支持此方法。

var student = new Object();

student.name = "Lanny";

student.age = "25";

student.location = "China";

var json = JSON.stringify(student);

alert(student);

结果如下:

有些人可能会怀疑JSON.stringify的作用,OK。那假如,我们不要这个函数。代码下面的样子:

var student = new Object();

student.name = "Lanny";

student.age = "25";

student.location = "China";

// var json = JSON.stringify(student);

alert(student);

恭喜你 得到的结果是:

没骗你吧,继续。

2.第二个参数存在,并且第二个参数还是function的时候

var students = new Array() ;

students[0] = "Lanny";

students[1] = "dong";

students[2] = "I love you";

var json = JSON.stringify(students,switchUpper);

function switchUpper(key, value) {

return value.toString().toUpperCase();

}

alert(json);

//var json = JSON.stringify(students, function (key,value) {

//return value.toString().toUpperCase();

//});

上面的方法也可以换成下面的,2个都是一样,只是写法有那么一点点的不一样而已。

得到结果如下:

3.第二个参数存在,并且第二个参数不是function,而是数组的时候。

3.1 【误区】如果第一个参数是数组,第二个参数也是数组的话,只显示第一个参数的值。

比如:

var students = new Array() ;

students[0] = "Lanny";

students[1] = "dong";

students[2] = "I love you";

var stu = new Array();

stu[0] = "1";

stu[1] = "2";

var json = JSON.stringify(students,stu);

alert(json);

sorry 得到的结果就是:

第二个被忽略了,只是第一个被系列化了。

3.2 如果第一个是对象(这里说的对象就像在C#里面可以进行new的),第二个是数组的。

那么如果第二个的value在第一个存在,那么的话就以第二个的值做key,第一个值为value进行表示

var student = new Object();

student.qq = "5485891512";

student.name = "Lanny";

student.age = 25;

var stu = new Array();

stu[0] = "qq";

stu[1] = "age";

stu[2] = "Hi";//这个student对象里不存在。

var json = JSON.stringify(student,stu);

alert(json);

得到的结果如下:

因为stu[2] = "Hi";这个Hi 在第一个找不到,所以就不进行显示了。

4.第三个参数

4.1.如果省略的话,那么显示出来的值 就没有分隔符。直接输出来

比如:

var student = new Object();

student.qq = "5485891512";

student.name = "Lanny";

student.age = 25;

var stu = new Array();

stu[0] = "qq";

stu[1] = "age";

stu[2] = "Hi";

var json = JSON.stringify(student,stu);

alert(json);

输出的就是:

4.2.如果是一个数字的话,那么它就定义缩进几个字符,当然 如果大于10 ,则最大值为10.

var student = new Object();

student.qq = "5485891512";

student.name = "Lanny";

student.age = 25;

var stu = new Array();

stu[0] = "qq";

stu[1] = "age";

stu[2] = "Hi";

var json = JSON.stringify(student,stu,100);//注意这里的100

alert(json);

那么得到的是:

空开来了10个字符。

4.3.如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。

也是一样。

4.4.如果仅仅是字符串,OK,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符。

如果是var json = JSON.stringify(student,stu,“HaiKou”);//

就这样吧 。good night。

java json.stringify_JSON.stringify 语法实例讲解相关推荐

  1. 【js】JSON.stringify 语法实例讲解

    语法:  JSON.stringify(value [, replacer] [, space]) value:是必选字段.就是你输入的对象,比如数组,类等. replacer:这个是可选的.它又分为 ...

  2. JSON.stringify 语法实例讲解

    作用:这个函数的作用主要是为了序列化对象的. 可能有些人对序列化这个词过敏,我的理解很简单.就是说把原来是对象的类型转换成字符串类型(或者更确切的说是json类型的).就这么简单.打个比方说,你有一个 ...

  3. java自旋锁使用_实例讲解Java 自旋锁

    一直以来不是怎么清楚自旋锁,最近有点时间,好好的学习了一下: 所谓的自旋锁在我的理解就是多个线程在尝试获取锁的时候,其中一个线程获取锁之后,其他的线程都处在一直尝试获取锁的状态,不会阻塞!!!那么什么 ...

  4. java pdf添加图章_实例讲解Java处理PDF图章的方法

    图章(印章)是一种在合同.票据.公文等文件中表明法律效应.部门机关权威的重要指示物,常见于各种格式的文件.文档中.对于纸质文档可以手动盖章,但对于电子文档,则需要通过特定的方法来实现.本篇文档分享通过 ...

  5. Java的socket简单语法实例以及多线程

    1.服务期实现以及多线程加入 public class Sever {public static void main(String[] args) throws Exception{ServerSoc ...

  6. java判断三位数的范围代码_java判断三位数的实例讲解

    java判断三位数的实例讲解 java怎么判断三位数 先定义个测试数字,如图 然后可以把数字转换成字符串来判断它的长度是否为3,如图 获取判断数字范围是否在100到1000之间的值,如图 在或者判断数 ...

  7. java json 序列化对象空值不处理_jackson 实体转json 为NULL或者为空不参加序列化(实例讲解)...

    使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null:这样在某些前端组件上应用该json对象会报错.(例如:echarts) 下面总结 ...

  8. java商品搜索功能_利用solr实现商品的搜索功能(实例讲解)

    后期补充: 为什么要用solr服务,为什么要用luncence? 问题提出:当我们访问购物网站的时候,我们可以根据我们随意所想的内容输入关键字就可以查询出相关的内容,这是怎么做到呢?这些随意的数据不可 ...

  9. java如何读取自定义log4j2_spring boot自定义log4j2日志文件的实例讲解

    背景:因为从 spring boot 1.4开始的版本就要用log4j2了,支持的格式有json和xml两种格式,此次实践主要使用的是xml的格式定义日志说明. spring boot 1.5.8.R ...

  10. java接入短信_java接入创蓝253短信验证码的实例讲解

    说明 项目是springboot框架 1.短信配置文件 包含验证码发送路径.用户名.密码 chuanglan.requesturl= chuanglan.account= chuanglan.pswd ...

最新文章

  1. 小学生python入门-小学生都开始学的Python编程到底是什么?
  2. Shell 数组中 @ 跟 * 的区别
  3. [Java网络编程]UDP通信程序练习
  4. 新媒体中的MCN机构是什么意思
  5. Spring Data JPA 从入门到精通~事务的处理及其讲解
  6. FLEX:target和currentTarget属性的区别
  7. Python 16进制与字符串的转换
  8. 基于log4j的消息流的实现之一消息获取
  9. 离散数学|代数系统(超详细期末复习)
  10. 2012年2月有29天
  11. html改游戏聊天字体颜色,html点击按钮改变字体颜色怎么实现
  12. 两个PDF比较标出差异_[连玉君专栏]如何检验分组回归后的组间系数差异?
  13. AS下如何生成自定义的.jks签名文件, 以及如何生成数字签名
  14. 帆软注册文件_报表组件FineReport加密狗注册机理及使用方法
  15. 沈阳计算机ps自锁按键开关,按键双排自锁开关PS-2D07L,PS-22E07
  16. USB口的条形码扫描器接口编程(VB) 转
  17. Windows安装Maven(图文解说详细版)
  18. 生鲜电商迎巨变?美菜撤出县城,有菜被集团关停
  19. 串口通信USART_ReceiveData(USARTx)接收串口 数据类型
  20. asp.net学生选课系统_网上选课系统_教师管理系统_ 学生管理系统_教务管理系统

热门文章

  1. UniWebview Bug处理记录
  2. java去除音频无声_java – 使用FFMPEG和silencedetect删除音频静音
  3. 使用NekoHtml处理网页(删除Style标签)
  4. CopperCam入门手册[5]
  5. Oracle 同音字查询,对外汉语汉字教学
  6. TextWatcher
  7. 产品市场营销策划方案与案例PPT模板
  8. css 日语字体,css字体
  9. 从零开始学习Android开发-Android概览
  10. Dz插件-Discuz插件-免费Discuz采集伪原创发布插件