Js操作Json技巧

wylc123 1年前 ⋅ 1379 阅读

操作Json和Json数组的一些基本方法

一、定义一个json对象

 

         1、直接定义

                  1)、属性值为常量:

                            var jsonObj={userId:'001'}; //字段可以不用也可用引号引起来,但字符串值必须用引号(单引号和双引号都行)

                 2)、属性值为Json对象:

                            var jsonObj={id:{userId:'001',sex:'男'},id1:{userId:'002',sex:'女'}};

         2、由字符串转换

                   var jsonStr="{\"userId\":\"001\"}";//字段和字符串值必须用双引号引起,单引号都不行

                   var jsonObj=JSON.parse(jsonStr);//字符串转json对象       

         3、由字符串转换

                   jsonObj.name='李明';

 

                   或者:jsonObj['name']='李明';

                   结果:{serId:"001",name:'李明'}            

        4、循环访问json对象属性

 

                   var jsonObj={id:{userId:'001',sex:'男'},id1:'002'};                

                   for(var field in jsonObj)

                   {

                           alert(field);//依次输出Id和Id1;

                           alert(jsonObj[field].userId)  //针对第一次循环,输出:001【第一个属性值为json对象,要通过属性值的属性访问】

                           alert(jsonObj[field]);//针对第二次循环,输出:002【第二个属性值为简单常量,直接输出即可】

                   }

二、定义一个json数组

           var josnArry=[];

         1、添加json对象元素:

                  jsonArry.push(jsonObj);

         2、删除元素

                  1)、delete jsonArry[0];

                              删除指定位置元素。注意:不直接直接删除,而是用null项取代。数组长度不变

                              结果:[ null],此时jsonArry[0]的值为undefined,后续访问数组时要考虑删除后的元素的特殊情况               

                   2)、splice(index,length):

                              删除指定位置开始指定个数的项

                              和delete区别:1、splice直接清空指定项,数组长度减小。而delete 只是用null项取代原有项

                                                          2、splice可以一次性删除多项。而delete职能删除一项

         3、循环访问数组

                 1、Jquery方式

                       $.each(jsonArry,function(index,item){

                          var userId=item.userId;          

                        });

                 2、一般js方法

                       for(var i=0;i<jsonArry.length;i++)

                       {

                         var userId=jsonArry[i].userId;  

                       }

                 3、特殊方法(类似方法2)

                       for(var item in jsonArry)

                       { 

                          var userId=jsonArry[item].userId;//注意:此处的item不是数组项,而是数组项的索引

                       }

                      

三、字符串和json对象和json对象数组相互转换

           var jsonStr="{\"userId\":\"001\"}";

           var jsonArry="[{\"userId\":\"001\"},{\"userId\":\"002\"}]";

         1、字符串转json对象或json对象数组

                  var jsonObj=JSON.parse(jsonStr);

                  var jsonArry=JSON.parse(jsonArry);

         2、json对象或json对象数组转字符串

                 var jsonStr=JSON.stringify(jsonObj);

                 var jsonArryStr=JSON.stringify(jsonArry);

################################################

JS中的JSON对象 定义和取值

1.JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
JSON的规则很简单:对象是一个无序的“‘名称:值'对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值'对”之间使用“,”(逗号)分隔。
 
规则如下:
 
1)映射用冒号(“:”)表示。名称:值
2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2
3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}
4) 并列数据的集合(数组)用方括号(“[]”)表示。
[
{名称1:值,名称2:值2},
 
{名称1:值,名称2:值2}
 
]
5 )元素值可具有的类型:string, number, object, array, truefalsenull
 
2.json中的五种写法:
 
1)传统方式存储数据,调用数据
 
复制代码代码如下:
 
<script type="text/javascript">
//JS传统方式下定义"类"
function Person(id,name,age){
this.id = id;
this.name = name;
this.age = age;
}
//JS传统方式下创建"对象"
var p = new Person(20141028,"一叶扁舟",22);
//对象数组赋值
for(){
var a = {id:area.regioncode,name:area.fullname,age :50};
Area_zNodes.push(a);
}
 
//调用类中的属性,显示该Person的信息
window.alert(p.id);
window.alert(p.name);
window.alert(p.age);
</script>
 
 
2)第一种样式:
 
复制代码代码如下:
 
<script type="text/javascript">
var person = {
id:001,
name:"一叶扁舟",
age:23
}
window.alert("编号:"+person.id);
window.alert("用户名:"+person.name);
window.alert("年龄:"+person.age);
</script>
 
3)第二种样式:
 
复制代码代码如下:
 
<script type="text/javascript">
var p = [
{id:001,name:"一叶扁舟",age:22},
{id:002,name:"无悔",age:23},
{id:003,name:"无悔_一叶扁舟",age:24}
];
  
 
for(var i = 0; i < p.length; i++){
window.alert("编号:"+p[i].id);
window.alert("用户名:"+p[i].name);
window.alert("年龄:"+p[i].age);
 
}
</script>
 
 
4)第三种样式:
 
复制代码代码如下:
 
<script type="text/javascript">
var p = {
"province":[
{"city":"福州"},
{"city":"厦门"},
{"city":"莆田"}
]
};
window.alert("所在城市:" + p.province[0].city);
</script>
 
5)第四种样式:
 
复制代码代码如下:
 
<script type="text/javascript">
var p = {
"ids":[
{"id":001},
{"id":002},
{"id":003}
],
"names":[
{"name":"一叶扁舟"},
{"name":"无悔"},
{"name":"无悔_一叶扁舟"}
]
};
  
 
for(var i = 0; i < p.names.length; i++){
window.alert("名字:"+p.names[i].name);
 
}
for(var i = 0; i < p.ids.length; i++){
window.alert("id:"+p.ids[i].id);
}
 
</script>
 
 
6)第五种样式:
 
复制代码代码如下:
 
<script type="text/javascript">
var p = {
"province":["福州","厦门","莆田"]
};
window.alert("城市的个数:"+p.province.length);
window.alert("分别是:\n");
for(var i=0;i<p.province.length;i++){
window.alert(p.province[i]);
}
</script>

 

更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: