JS基础_JSON

JSON简介和语法
JOSN

  1. JS中的对象只有js自己认识,其他语言都不认识,

  2. JOSN 就是一个特殊格式的字符串,这个字符串可以被任意语言所识别,并且可以转换为任意语言的对象,josn在开发中主要用来数据的交互

  3. JavaScript Object Notation (JSON):JavaScript对象表示法;

  4. json和js对象的格式一样,只不过json字符串的属性名必须加双引号,其他的和js语法一致;

JSON 分类:

  1. 对象 {}

  2. 数组 []

    var obj = {name : “孙悟空” , age : 18 , gender : “男”}
    // obj是对象 ,属性名可加双引号也可以不加

    var obj = ’ {“name” : “孙悟空” , “age” : 18 , “gender” : “男”} ’
    // obj 是json对象, 属性名必须加双引号,最外面用引号引起来;

JSON中允许的值:

  1. 字符串
  2. 数值.
  3. 布尔值
  4. null
  5. 对象
  6. 数组
 var arr = ' [1,2,3,"hello","true"] ';
// arr 是json数组,
var obj2 = '{"arr" : [1,2,3]}' ;
var arr2 = '[{name : "孙悟空" , age : 18 , gender : "男"}  , {name : "孙悟空" , age : 18 , gender : "男"}  ]'
// 都是json

将json字符串转换为js对象
在JS中,为我们提供了一个工具类,就叫json,这个对象可以帮助我们将一个json转换为JS对象,也可以将一个js对象转换为json;

JSON -->JS对象
方法:JSON.parse();
可以将JSON字符串转换为JS对象

var json = ' {"name" : "孙悟空" , "age" : 18 , "gender" : "男"} '  
var arr = ' [1,2,3,"hello","true"] ';

var o  =  JSON.parse(json);
var o2 = JSON.parse(arr);

console.log(o.name); // 孙悟空
console.log(o2); //  [1, 2, 3, "hello", "true"]
console.log(o2[1]); // 2

JS对象 —> JSON
方法:JSON.stringify();
可以将JS对象转换为JSON字符串,
需要一个js对象作为参数,会返回一个json字符串,

var obj3 = {name:"猪八戒" , age:28 , gender:"男"};

var str = JSON.stringify(obj3);

console.log(typeof str); // string
console.log(str);
// {"name":"猪八戒","age":28,"gender":"男"}

IE兼容

注意: json对象在ie7及以下的浏览器中不支持,所以在这些浏览器中会报错;

eval();

1.这个函数可以用来执行一段字符串形式的js代码,并将执行结果返回

2.如果使用eval()执行的字符串中含有{},它会将{}当成是代码块,如果不希望将其当成代码快解析,则需要在字符串前后加一个();
3. eval()这个函数的功能很强大,可以直接执行一个字符串中的js代码,但是在开发中尽量不要使用,首先它的执行性能比较差,然后它还有安全隐患

var str2 = "alert('hello')";
eval (str2); // hello

var str =  ' ({"name" : "孙悟空" , "age" : 18 , "gender" : "男"}) '  ;

 var obj = eval(str);
    console. log(obj); // {name: "孙悟空", age: 18, gender: "男"}

如果需要兼容ie7及以下的json操作,则可以通过引入一个外部的js文件来处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值