javascript之JSON对象

JSON是javascri Object Notatio(javascript对象表示法)的简称。它是一种轻量级的数据交换格式。

JSON是javascript的一个严格的子集,是基于javascript的对象字面量表示法来表示结构化的数据。

1.JSON语法

支持三种数据类型,注意:不支持变量、函数、对象实例。

1.简单值:可以表示字符串、数字、布尔值、以及null。注意不支持undefined。字符串必须使用双引号。

2.对象:表示无序的键值对。对象没有变量和分号。而且对象的属性值必须加双引号。

example:

{

"name":"tian"
"age":21,
"school":"xidian"

}

3.数组:有序的值列表。数组没有变量和分号。

[{ "title":"hello"}, "name",21,true ]
 

二、JSON对象的方法

1.stringify():把JSON对象序列化为JSON字符串

该方法接收三个参数;

a.要序列化的JSON对象,必须的

b.指定序列化的方式。是个过滤器。可以是数组,也可以是函数(成为过滤函数)

若为数组,则筛选出数组中列出的属性。

若为函数,该函数接收两个参数,属性名key,属性值value。根据函数的返回值决定序列化的结果。对象的每个属性都会经过过滤器。

如果返回值是undefined,则忽略相应的属性。

c.表示是否在JSON字符串中保留缩进

若为数字,缩进的字符数,结果也会包含换行符。

若为字符串,将其作为缩进字符。

d. 由于JSON.stringify()方法有时不能满足某些对象序列化的而要求。有些时候,会给对象添加toJSON方法,返回其自身的JSON数据格式。

toJSON()可以作为函数过滤器的补充。

总结:JSON.stringify()的序列化对象的顺序如下:

  • 如果javascript对象存在toJSON()方法,而且该方法能取得有效值,则调用该方法。否则,返回javascript对象对象本身。
  • 如果有第二个参数,应用这个函数过滤器。传入过滤器的值是第一步返回的值。
  • 对第二步中返回的每个值进行相应的序列化。
  • 如果有第三个参数,执行相应的格式化。

2.parse():把javascript字符串解析为JSON对象

该方法接收三个参数;

a.要解析的javascript字符串,必须的

b.还原函数,可选。应该用在每个键值对。

时间: 2024-10-05 11:25:57

javascript之JSON对象的相关文章

javascript获取json对象的key名称的两种方法

javascript获取json对象的key名称的两种方法 数据处理中,你可能接收到一个不确定内容格式的json对象,然后要把key的值提取出来.今天试过两种可以提取json key的方法,均可以正常工作. 先看第一种方法 jsonObj = { Name: 'richard', Value: '8' }for (key in jsonObj){ console.log(key); //add your statement to get key value} 结果 NameValue 第二种方法

JavaScript的json对象

json  =>  javascript object notation 什么是json 数据交换的文本格式,简单说,每个Json对象,就是一个值,要么是简单类型的值,要么是复合类型的值,但是只能是一个值,不能是两个或更多的值,这就是说,每个Json文档只能包含一个值. json的优点 书写简单,一目了然,符合javascript原生语法,可以由解释引擎直接处理,不用另外添加解析代码. json数据类型和格式规定 · 复合类型的值只能是数组或对象,不能是函数.正则表达式对象,日期对象. · 简单

Javascript中Json对象与Json字符串互相转换方法汇总(4种转换方式)

1.Json对象转Json字符串 JSON.stringify(obj); 2.Json字符串传Json对象 JSON.parse(str);//第一种 $.parseJSON(str);//第二种,等价于jQuery.parseJSON(str); eval('(' + str + ')');//第三种 (new Function("return " + str))();//第四种 3.样例 var obj={"one":"I am 1",&q

JavaScript中 JSON对象 和 JSON字符串 的相互转化

一.JSON字符串转换为JSON对象 var str = '{"name":"cxh","sex":"man","age":"25"}'; //方法一:eval方式解析 var obj1 = eval('(' + str + ')'); console.log(obj1.name); //方法二:使用全局的JSON对象解析,使用JSON.parse需严格遵守JSON规范,如属性都需用引号

javascript : json对象的排序

json对象的排序 代码 test.js 第一版 1 //使用严格模式 2 "use stricts"; 3 //需要排序json对象格式 4 var moudles = {"share-map":{orderindex:2},"share-file":{orderindex:1}}; 5 6 var keys = Object.keys(moudles); 7 //最终的对象 8 var arr = []; 9 //构造对象 10 functi

javascript操作json对象

1.创建JsonArray对象 var jsonArr = []; 2.创建Json对象 var json = {}; 3.为json对象赋值 json.name = 'zhangsan'; json.age = 18; 4.将json对象push进JsonArray对象中 jsonArr.push(json); 5.将json字符串转换成json对象 var jsonData = '{ "name": "zhangsan", "sex": 18

javascript中json对象json数组json字符串互转及取值

今天用到了json数组和json对象和json类型字符串之间互转及取值,记录一下: 1.json类型的字符串转换为json对象及取值 1 var jsonString = '{"bar":"property","baz":3}'; 2 var jsObject = JSON.parse(jsonString); //转换为json对象 3 alert(jsObject.bar); //取json中的值 2.json对象转为json类型的字符串 v

javascript的json对象中属性名使用uuid

例如: var a={848b2300c37b4cddb9c633fccb566e5c:"123"}; 浏览器会报错,大至意思是848b2300c37b4cddb9c633fccb566e5c不是一个合法的属性名. 看了半天也没看出什么来,是长度太长?非法字符? json官网上好像也没说这种不可以啊. 后来搜了一下javascript的变量命名规则,在javascript里变量的名称不能是数字开头,在uuid前面加一个字符就可以了,比如: var a={_848b2300c37b4cd

Javascript中JSON对象的操作以及遍历key/value

//遍历获取值: function text(){ var json = {"options":"[{/"text/":/"王家湾/",/"value/":/"9/"},{/"text/":/"李家湾/",/"value/":/"10/"},{/"text/":/"邵家湾/",/