JSON

JSON是一种数据交换的格式。

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON 与 JS 对象的关系

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

1

var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的

1

var json = '{"a": "Hello", "b": "World"}'//这是一个 JSON 字符串,本质是一个字符串

JSON的组成元素

JSON是一个序列化的对象数组

可以是对象数组数字字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写。

1、对象由花括号括起来的逗号分割的成员构成,成员是字符串键和上文所述的由逗号分割的键值对组成,如:(用.引用)

1

    {"name""John Doe""age": 18, "address": {"country" "china""zip-code""10000"}}

2、数组是由方括号括起来的一组值构成,如:(用[ ]引用)

1

[3, 1, 4, 1, 5, 9, 2, 6]

3、字符串与C或者Java的字符串非常相似。字符串是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

4、数字也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。 [2]

六个构造字符

 [ 左方括号    { 左大括号   ] 右方括号    } 右大括号   : 冒号   , 逗号

JSON 和 JS 对象互转

要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:

1

var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}

要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:

1

var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'

基础示例

简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式,例如在 PHP 中,可以将 JSON 还原为数组或者一个基本对象。在用到AJAX时,如果需要用到数组传值,这时就需要用JSON将数组转化为字符串。 [3] 

 项目实例

$(document).ready(function(){
       $("button#rub").click(function(){
         tol=document.getElementById("word").value;
         $.post("http://api.tianapi.com/txapi/lajifenlei/index", { key:"30e50b59de81415e5a7398c7fa669386",
         word:tol} ,
          function(data,status){
            if(data.code!=200)
                alert("抱歉,您查询的数据不存在");
            else{
              var t=data.newslist;
              var i;
              for(i=0;i<t.length;i++){
                var r=confirm("请选择您想要查询的垃圾:"+"\n"+t[i].name);
                 if (r==true){
                 $('#result1').empty();
                 $('#result1').append(JSON.stringify(data.newslist[i].explain)); //返回内容绑定到ID为result的标签
                 $('#result2').empty();
                 $('#result2').append(JSON.stringify(data.newslist[i].tip));//JS对象转换为JSON字符串输出
                 break;  }
              }
            }
          });
      });
  });

已知data数据为(JSON)(对象里套数组)

故用JSON.stringify(data.newslist[i].explain)引用

{
"code":200,
"msg":"success",
"newslist":[
{
"name":"隐形眼镜",
"type":3,
"aipre":0,
"explain":"干垃圾即其它垃圾,指除可回收物、有害垃圾、厨余垃圾(湿垃圾)以外的其它生活废弃物。",
"contain":"常见包括砖瓦陶瓷、渣土、卫生间废纸、猫砂、污损塑料、毛发、硬壳、一次性制品、灰土、瓷器碎片等难以回收的废弃物",
"tip":"尽量沥干水分;难以辨识类别的生活垃圾都可以投入干垃圾容器内"
},
{
"name":"眼镜",
"type":3,
"aipre":0,
"explain":"干垃圾即其它垃圾,指除可回收物、有害垃圾、厨余垃圾(湿垃圾)以外的其它生活废弃物。",
"contain":"常见包括砖瓦陶瓷、渣土、卫生间废纸、猫砂、污损塑料、毛发、硬壳、一次性制品、灰土、瓷器碎片等难以回收的废弃物",
"tip":"尽量沥干水分;难以辨识类别的生活垃圾都可以投入干垃圾容器内"
},
{
"name":"智能眼镜",
"type":0,
"aipre":0,
"explain":"可回收垃圾是指适宜回收、可循环利用的生活废弃物。",
"contain":"常见包括各类废金属、玻璃瓶、易拉罐、饮料瓶、塑料玩具、书本、报纸、广告单、纸板箱、衣服、床上用品、电子产品等",
"tip":"轻投轻放;清洁干燥,避免污染,费纸尽量平整;立体包装物请清空内容物,清洁后压扁投放;有尖锐边角的、应包裹后投放"
}
]
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值