AJAX学习---JSON

JSON简介

全称:JavaScript Object Notation既js对象标记法

是用来存储和交换文本信息的语法与XML类似,但是比XML更小更快,更易解析

如使用XML时需经过以下几步骤:

  1. 读取XML文档

  2. 使用XML DOM来循环遍历文档

  3. 读取值并存储在变量中

使用JSON时需经以下步骤:

  1. 读取JSON字符串

  2. 用eval处理JSON字符串

JSON数据类型

  • 字符串

  • 数字

  • 对象

  • 数组

  • 布尔值

  • null

语法规则

  • 数组用方括号[]表示,值为JSON数据类型,也可以是JS表达式,函数,日期,undefined

    "student":[{"name":"zs","age":12},{"name":"ls","age":15}]
    //student为包含两个对象的数组
  • 对象用大括号{}表示

    1. 由key/value对组成,key必须为字符串,value为合法的JSON数据类型;

    2. key与value用冒号(:)分割,每对key/value用逗号(,)分割,如:

      obj={"name":"ls","age":12}
    3. 可以使用对象名.属性名的方法访问如

      obj.name
    4. 可以使用对象名["属性名"]的方法访问如:

      obj["name"]
  • 名称/值对(name/value)组合成数组和对象,名称置于双引号中(只能是双引号),值为字符串、数值、布尔值、null、对象和数组(不能用undefined和函数),并列的数据之间用逗号分隔如:

    {
    "name":"zs",
    "age":12
    }
  • 字符串必须用双引号括起来,不能用单引号;字符串中不能单独出现双引号(")和右斜杆\;如果需要双引号或右斜杆,需要使用“右斜杆+双引号或右斜杆”的形式如:

    \"和\\
  • 数值不能有八进制(如:055)和16进制(如:0x12)

JSON的解析与生成

JSON通常用于与服务端交换数据,所接收的一般都是字符串

  1. 将JSON字符串转为JS对象

    str='{"name":"ls","age:15"}'
    obj=JSON.parse(str)
  2. 将JS对象转为JSON字符串

    使用JSON.stringify(value,[replacer[,space]])实现转换

    value:必选参数,一般为js数组或对象

    replacer:可以省略,若不省略一般为函数或数组。

    • 为函数,则每一组key/vaule都会调用此函数,该函数返回一个值,作为名称的值变换到结果字符串中,如果返回undefined则会被忽略

    • 如果是数组则只有数组中存在有名称才能被转换,且转换后顺序与数组中的值保持一致

    space:可以省略,作用于字符串排版

    obj={"a":1,"b":2,"c":3,"d":4}
    jsonstr=JSON.stringify(obj,["a","d","c"],"one")
    //结果
    {
    one"a":1,
    one"d":4,
    one"c":3
    }//因为第二个参数是数组且为a,b,c所以结果与数组值顺序对应,第三个参数为one所以每个key/vaule前加了one,如果是空格的话则为空格起到排版作用

    注:当JS对象中不符合json规则时,stringify是不会转换的

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进阶的菜熊

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值