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 obj = { name: "姓名", sex: 25 };
    //JSON对象格式
    var json = { "name""姓名""sex""25" };
    //JSON字符串
    var json_string = '{"name":"姓名","sex":"25"}';
    //测试
    document.write(json_string.name) //结果:undefined,说明:不能访问JSON字符串里面的数据         
    var string_to_json = JSON.parse(json_string);
    document.write(string_to_json.name) //结果:姓名,说明:把JSON字符串转换为JSON对象格式后可以访问数据 
    var json_to_string = JSON.stringify(json);
    document.write(json_to_string); //结果:{"name":"姓名","sex":"25"} ,说明:把JSON对象转换成了字符串


    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"]   数组





    0 0
    原创粉丝点击