js转换
来源:互联网 发布:上海行知小学对口中学 编辑:程序博客网 时间:2024/06/18 09:50
1.json字符串转json 对象:
$.parseJSON( jsonstr ); //jquery.parseJSON(jsonstr),可以将json字符串转换成json对象
JSON.parse(jsonstr); //可以将json字符串转换成json对象
var obj = eval('(' + str + ')');//可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
json对象读取方式:Alert(obj.name);
2.json对象转json字符串:
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
注:上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。
3.json字符串转数组:
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";
var myobj=eval(t2);
for(var i=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
var str = '1,2,3,4,巴德,merge';var arr = str.split(',');console.log(arr); // ["1", "2", "3", "4", "巴德", "merge"] 数组console.log(arr[4]); // 巴德
4.数组转json字符串:
其实核心的方法就是:JSON.stringify()
参数,不论是数组,还是对象,直接传入,返回的就是json字符串。
var arr = [1,2,3,4,'巴德','merge'];var str = arr.join(',');console.log(str); // 1,2,3,4,巴德,merge
5.json对象转数组:
for(var i=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
6.数组转json对象:
var
array = [[
"标题1"
,
"12:00"
,
"type"
],[
"标题2"
,
"12:10"
,
"type"
],[
"标题3"
,
"12:20"
,
"type"
],[
"标题4"
,
"12:30"
,
"type"
]];
document.write(array);
Array.prototype.format=
function
(){
if
(!
this
.length)
return
null
;
var
i = 0,
len =
this
.length,
arr = [];
for
(;i<len;i++){
arr.push({
"标题"
:
this
[i][0],
"time"
:
this
[i][1],
"类别"
:
this
[i][2]});
}
return
JSON.stringify(arr);
};
7.JSON 语法规则
JSON 语法是 JavaScript 对象表示法语法的子集。
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
对象格式大括号开始{}
对象数组格式是以[{}]这种格式开始的。
1.数组用“[]”创建,对象用“{}”创建,并且使用Json基本都是用[]或者{}创建的数组或对象,否则一个普通的字符串是没有意义的;
2.无论是数组还是对象,之间的元素都用“,”隔开;
3.对象内部,(属性的)名称和值用“:”隔开,并且必须要用“:”隔开,不可单独存在属性名或者值;
4.对象和数组可以互相嵌套,即数组中的一个元素可以是一个对象也可以是一个数组,同理对象中的一个属性的值可以是一个对象也可以是一个数组。
例子:
JSON字符串:
var jsonstr = '{ "name": "cxh", "sex": "man" }';
JSON对象:
var jsonobj = { "name": "cxh", "sex": "man" };
JSON数组:
var jsonarr ={
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
] }
对象数组:
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
alert(employees[0].lastName); // 方式一
alert(employees[0]["lastName"]); // 方式二
数组
var arr=['']
//将json字符串转换成json对象
var t="{'firstName': 'cyra', 'lastName': 'richardson', 'address': { 'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ] }";
var jsonobj=eval('('+t+')');
alert(jsonobj.firstName);
alert(jsonobj.lastName);
//将json字符串转换为数组
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";
var myobj=eval(t2);
for(var i=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
//将json字符串转换为数组
var t3="[['社旗县国税局桥头税务所','社旗县国税局桥头税务所','社旗县城郊乡长江路西段']]"
var obj = eval(t3);
//通过eval() 函数可以将JSON字符串转化为对象
for(var i=0;i<obj.length;i++){
for(var j=0;j<obj[i].length;j++){
alert(obj[i][j]);
}
}
response = (
"[{ name: 'Joe', age: '30', gender: 'M'},{ name: 'Chandler', age: '32', gender: 'M'},{ name: 'Rose', age: '31', gender: 'M'}]" //字符串形式
);
var response1 ="({ name: 'Vicson', age: '30', gender: 'M'})"; //字符串形式,这里的小括号不能少
json = eval(response);
json1 = eval(response1);
alert(json[0].name + "," + json[1].age + "," + json[2].gender);
alert(json1.name);
var str = '1,2,3,4,巴德,merge';var arr = str.split(',');var strify = JSON.stringify(arr);console.log(arr); // ["1", "2", "3", "4", "巴德", "merge"] 数组console.log(arr[4]); // 巴德console.log(strify); // ["1", "2", "3", "4", "巴德", "merge"] 字符串var arrParse = JSON.parse(strify);console.log(arrParse); // ["1", "2", "3", "4", "巴德", "merge"] 数组
- js转换
- js时间转换(毫秒转换)
- js转换 underscore.js学习
- js运算转换
- 简繁体转换.js
- js数据类型转换
- js大小写字母转换
- js数字转换
- js 编码转换
- js 类型转换
- js数据类型转换
- js基本数据类型转换
- JS汉字编码转换(转)
- js变量类型转换
- js 类型转换
- js类型转换
- js 字符串转换数字
- js 日期转换格式
- 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量
- 实现Bootstrap导航条可点击和鼠标悬停显示下拉菜单
- java核心技术----接口
- 在一个html页面加载另一个html页面
- 架构案例丨微信Android客户端架构演进之路
- js转换
- Apache Commons Lang3 API地址收藏
- 拼图响应式前端框架版响应式后台正式发布
- ROS Navigation-----发布传感器数据
- thinkphp四种url访问方式详解
- java-字符串中的字符进行排序
- 虚函数、纯虚函数、虚函数与析构函数
- C++动态库中调用sqlcipherbd.dll
- Oracle无法删除当前连接用户,以及killed的处理