javascript中json的⽤法整理
1、javascript中将字符串转换成json对象,需要⽤到jquery.js
<script type="text/javascript" src="jquery-1.8.1.js"></script>
<script>
var jsonStr1="{\"code\":\"001\",\"name\":\"hello1\"}";
var jsonStr2="[{\"code\":\"002\",\"name\":\"hello2\"}]";
var jsonStr3="[{\"code\":\"003\",\"name\":\"hello3\"},{\"code\":\"004\",\"name\":\"hello4\"}]";
//第⼀种写法,从jQuery 3.0开始,不推荐使⽤$.parseJSON。要解析JSON字符串,请改⽤原⽣的 JSON.parse ⽅法。
var jsonObj1=$.parseJSON(jsonStr1);
var jsonObj2=$.parseJSON(jsonStr2);
var jsonObj3=$.parseJSON(jsonStr3);
//第⼆种写法
//var jsonObj1=JSON.parse(jsonStr1);
//var jsonObj2=JSON.parse(jsonStr2);
//var jsonObj3=JSON.parse(jsonStr3);
//第三种写法
//var jsonObj1=eval('(' + jsonStr1 + ')');
//var jsonObj2=eval('(' + jsonStr2 + ')');
//var jsonObj3=eval('(' + jsonStr3 + ')');
js获取json的key和valuealert(jsonObj1.name);
alert(jsonObj2[0].name);
alert(jsonObj3[1].name);
</script>
传⼊格式有误的 JSON 字符串可能导致抛出异常。例如,下⾯这些⽆效的 JSON 字符串:
{test: 1} (test 没有使⽤双引号包裹).
{'test': 1} ('test' ⽤了单引号⽽不是双引号包裹).
"{test: 1}" (test 没有使⽤双引号包裹).
"{'test': 1}" ('test' ⽤了单引号⽽不是双引号包裹).
"'test'" ('test' ⽤单引号代替双引号).
".1" (number 必须以数字开头; "0.1" 将是有效的).
"undefined" (undefined 不能表⽰⼀个 JSON 字符串; 然⽽null,可以).
"NaN" (NaN 不能表⽰⼀个 JSON 字符串; ⽤Infinity直接表⽰⽆限也是不允许的).
2、json对象转换成字符串
<script>
var obj=new Object();
obj.name="hello1";
var str=JSON.stringify(obj);
alert(str);
</script>
3、获取json对象条⽬数量,正常情况下可以使⽤obj.length来获取数量,如果想获取对象元素数量,可以使⽤下⾯⽅法
function getJsonObjLength(jsonObj) {
var Length = 0;
for (var item in jsonObj) {
Length++;
}
return Length;
}
</script>
4、循环操作json
<script>
var myObj = { "code":"001", "name":"hello1" };
//使⽤ for-in 来循环对象的属性
for (x in myObj) {
alert(x);
}
//在 for-in 循环对象的属性时,使⽤中括号([])来访问属性的值for (x in myObj) {
alert(myObj[x]);
}
</script>
5、删除JSON对象的属性
<script>
var myObj, i, x = "";
myObj = {
"name":"hello1",
"alexa":10000,
"sites": {
"site1":"123",
"site2":"456",
"site3":"789"
}
}
//使⽤ delete 关键字来删除 JSON 对象的属性
delete myObj.sites.site1;
//使⽤中括号([])来删除 JSON 对象的属性:
delete myObj.sites["site2"];
for (i in myObj.sites) {
x += myObj.sites[i] + "#";
}
alert(x);
</script>
6、数组转JSON字符串
var jsonArr=new Array();
for(var i=0;i<5;i++){
var obj=new Object();
obj.title="title"+i;
obj.value=i;
jsonArr.push(obj);
}
var str=JSON.stringify(jsonArr);    alert(str);
</script>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。