JSON

一 JSON的简介

  1 .JSON是一种轻量级的数据交换格式

  2. JSON通常用于服务器端向网页传递数据

  3 JSON 是存储和交换文本信息的语法。类似 XML;

  4 JSON是在AJAX中代替XML交换数据的更佳方案。

二 JSON语法规则

数据使用键值对的方式;

    数据由逗号分割;

    大括号保存对象;

    方括号保存数组

 JSON 值可以是:

    1. 数字(整数或浮点数)
    2. 字符串(在双引号中)
    3. 逻辑值(true 或 false)
    4. 数组(在方括号中)
    5. 对象(在花括号中)
    6. null
<script>
      //js中的对象表示
  var user={
    name:'张三',
    age:'30'
  }
   //josn对象表示
   
   //json本质上是字符串

   //普通数组 
    var arr=["aaa",100,true]

  //json数组
    ["aaa",100,true] //少了变量赋值

  //数组对象组合嵌套使用
  [{
    "name":"aaa",
    "age":30
  },{
    "name":"bbb",
    "age":25
  },{
    "name":"ccc",
    "age":18
  }]
</script>

三:JSON 的解析和序列化

    一般情况下,我们的json数据都是从服务端获取到的,获取的json数据是以字符串的形式返回的。这个字符串虽然是json格式的,但是不能被直接使用,我们必须将该字符串转化为一个对象才能正常解析它

  JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象,但是存在安全问题(如果JSON中包含恶意代码也会被直接执行)

      使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON解析器只会识别JSON文本,而不会执行

      JSON 的解析:json数据转换成js对象

    语法:var myObject = JSON.parse(myJSONtext, reviver);

 JSON的序列化:js对象转换成json数据(字符串)
         var myJSONText = JSON.stringify(myObject, replacer);
  <script>
  //实际使用的时候json数据需要从服务器加载,这里假定下面的数据是从服务器加载过来的,来演示后续的操作。
  var jsonstr='[{"name":"aaa","age":30},{"name":"bbb","age":25},{"name":"ccc","age":18}]';
  //alert(typeof(jsonstr))
 //json数据转换成js对象
    //var jsonobj=JSON.parse(jsonstr);
    //alert(jsonstr)
   // alert(jsonobj[0].name)
    //alert(typeof(jsonobj))

    var jsonobj=JSON.parse(jsonstr,function(key,value){
        if ((key=='name')) {
          alert('VIP会员:'+value) ;
        }else
        {
           alert(value)
        }
    });


  </script>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大愚Talk

我对变量产生了这些想法

最近在学习Golang的过程中,发现一个有意思的事情,有的文章说函数调用传参时 slice 是引用传递,有的说是值传递。为什么同一个东西大家会不同认识?为了搞清...

831
来自专栏Small Code

【Python】小谈numpy数组占用内存空间问题

之前跟同学讨论过numpy数组的占用空间大小问题,但是今天给忘了,又重新试验了一下,主要是利用sys模块的getsizeof函数,使用的版本是 Python3....

53610
来自专栏黑泽君的专栏

在64位系统下,指向int型的指针占的内存空间多大?

621
来自专栏锦小年的博客

python学习笔记6.2-类常见的编程模式

上一次写过一篇有关于python类的博客,现在回头去看看,发现好多语法还是比较低级,表达不是很清晰。现在谈一谈对python类的表达的新的理解。 本篇博客的...

2319
来自专栏算法channel

Python|编写自己的类

01 类(对象) class dog(object) 以上定义了一个dog对象,它继承于根类object. 02 类的属性 def __init__(s...

3685
来自专栏null的专栏

python——时间与时间戳之间的转换

对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模...

3378
来自专栏菜鸟计划

javascript 变量、作用域和内存问题

一、基本类型和引用类型的值   1.基本类型和引用类型的值  基本类型值:指那些保存在栈内存中的简单数据,即这种值完全保存在内存中的一个位置,他们所占据的空间大...

3728
来自专栏软件测试经验与教训

Python学习笔记(七)

3518
来自专栏Python小屋

Python中相同的值在内存中到底会保存几份

Python采用基于值的内存管理模式,相同的值在内存中只有一份。这是很多Python教程上都会提到的一句话,但实际情况要复杂的多。什么才是值?什么样的值才会在内...

3345
来自专栏LEo的网络日志

python技巧分享(十一)

1404

扫码关注云+社区

领取腾讯云代金券