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 + ')');

alert(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.code="001";
obj.name="hello1";
var str=JSON.stringify(obj);
alert(str);
</script>

3、获取json对象条目数量,正常情况下可以使用obj.length来获取数量,如果想获取对象元素数量,可以使用下面方法

<script>
        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字符串

<script>
    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>

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值