Json基本用法
Posted 有段天线
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Json基本用法相关的知识,希望对你有一定的参考价值。
JSON: javascript Object Notation(JavaScript 对象表示法)是一种数据传输格式。如用在Ajax交互中传输数据给后台。在此介绍分享一些常见的基本的json语法及应用
基础语法
遍历数组/对象
对象与字符串的转化
实例
基础语法
数据在名称/值对中 如"name" : "Teleily"
数据由逗号分隔 如{ "name":" Teleily " , "number":"20161167****" }
大括号保存对象
中括号保存数组[ "name", "number", "tele" ]
遍历数组/对象
使用 for-in 来循环对象的属性和属性的值
若x表示要访问的键,则myObj[x]表示该键所对的值
<script>
var myObj = { "Name":"teleily", "Dorm":307, "Gender":"female" };
for (x in myObj) {
document.getElementById("demo").innerhtml += x + "<br>";
}
</script> //此处打印出来的是key值
<script>
var myObj = { "Name":"teleily", "Dorm":307, "Gender":"female" };
for (x in myObj) {
document.getElementById("demo").innerHTML += myObj[x] + "<br>";
}
</script>//此处打印出来的是value值
使用 for-in 来循环数组
对象名一点再加对应的数组名如 for (i in myObj.Hobby)
<script>
var myObj, i, x = "";
myObj = {
"Name":"teleily",
"Dorm":307,
"Hobby":[ "Singing", "Dancing", "Eating" ]
};
for (i in myObj.Hobby) {
x += myObj.Hobby[i] + "<br>";
}
document.getElementById("demo").innerHTML = x;
</script>
嵌套 JSON 对象中的数组用两个for循环如 for (j in myObj.Hobby[i].addr)
for (i in myObj.Hobby) {
x += "<h1>" + myObj.Hobby[i].name + "</h1>";
for (j in myObj.Hobby[i].addr) {
x += myObj.Hobby[i].addr[j] + "<br>";
}
}
myObj = {
"Name":"teleily",
"Dorm":307,
"Hobby": [
{ "name":"Singing", "addr":[ "教室", "宿舍", "路上" ] },
{ "name":"Dancing", "addr":[ "舞蹈室", "宿舍", "健身房" ] },
{ "name":"Eating", "addr":[ "饭堂", "宿舍" ] }
]
}
对象与字符串的转化
Json 对象和 Json 字符串的区别
var str2 = { "name": "asan", "sex": "man" };//json 对象
var str1 = '{ "name": "deyuyi", "sex": "man" }';//json字符串
JSON.parse()与JSON.stringify()
在接收服务器数据时一般是字符串
我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。
var obj = JSON.parse('{ "Name":"teleily", "Dorm":307, "Gender":"female" }');
在向服务器发送数据时一般是字符串。
我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。
var obj = { "Name":"teleily", "Dorm":307, "Gender":"female"}; var myJSON = JSON.stringify(obj);
把 JSON 文本转换为 JavaScript 对象
注意:var obj = eval ("(" + txt + ")");
var txt = '{ "students" : [' +
'{ "name":" 天线" , "num":1 },' +
'{ "name":"小天线" , "num":2 },' +
'{ "name":"微博" , "num":3 } ]}';
var obj = eval ("(" + txt + ")");
document.getElementById("name").innerHTML=obj.students[0].name
document.getElementById("url").innerHTML=obj.students[2].num
实例
1.
var k= [a,b,c,d];
var v= [2,3,3,3];
如何将两者转化为如下json形式?
c = [{"a":"2"},{"b":"3"},{"c":"3"},{"d":"3"}]
方法:
Var c=[];
$.each(a, function (k,v) {
var obj={};
obj[v]=values[k];
c.push(obj);
});
var mes=JSON.stringify(c);2.
有一个这样的数组:
var k= ['a', 'b', 'c'];
var v= ['1', '2', '3'];
或者这样var k=['a', '1', 'b', '2', 'c', '3'];
如何转换成这样的json格式:
obj = {
'a': '1',
'b': '2',
'c': '3'
};
方法:
var obj={}:
for(var i=0;i<3;i++)obj[k[i]]=v[i];
参考链接
[1]:http://www.runoob.com/json/json-tutorial.html
以上是关于Json基本用法的主要内容,如果未能解决你的问题,请参考以下文章