• json


    json(js对象符号)

    json: javascript  object  notation(js对象符号)

    其是一种数据交换格式,xml也是数据交换格式,json对比xml的生成和处理要更加方便。

    javascript里边json体现

    json在javascript里边就是字面量对象

    var obj = {名称:值,名称:值,名称:function(){}}

    通过php生成json信息

    json_encode(数组/对象)------------>生成json信息

    json_decode(json信息); 反编码json信息

    javascript接收处理json信息

    通过eval()把接收的json字符串变成真实的对象信息

    json最大的特点就是无刷新页面

    JSON 的语法规则十分简单,可称得上“优雅完美”,总结起来有:

     JSON 的语法规则是怎样的

    - 数组(Array)用方括号(“[]”)表示。

    - 对象(Object)用大括号(”{}”)表示。

    - 名称/值对(name/value)组合成数组和对象。

    - 名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。

    - 并列的数据之间用逗号(“,”)分隔

    对象(Object)

    对象用大括号(“{}”)括起来,大括号里是一系列的“名称/值对”,请看概念图。

     

    两个并列的数据之间用逗号(“,”)隔开,注意两点:

    - 使用英文的逗号(“,”),不要用中文的逗号(“,”)

    - 最后一个“名称/值对“之后不要加逗号

    数组(Array

    数组表示一系列有序的值,用方括号(“[]”)包围起来,并列的值之间用逗号分隔,

    名称/值对(Name/Value)

    名称(Name)是一个字符串,要用双引号括起来,不能用单引号,也不能没有引号,这一点与 JavaScript 不同。

    值的类型只有七种:字符串(string)、数值(number)、对象(object)、数组(array)、true、false、null。不能有这之外的类型,例如 undefined、函数等。

    字符串的概念图。

    数值的概念图。

    JSON 解析和生成

    1. eval()

    eval() 函数的参数是一个字符串,其作用是直接执行其中的 JavaScript 代码。

    eval() 能够解析 JSON 字符串。从这里也可以看得出,JSON 和 JavaScript 是高度嵌合的。

    但是,现在已经很少直接使用 eval() 来解析了,如果您的浏览器版本真的是很旧,可能才需要这个方法。此外,eval() 是一个相对危险的函数,因为字符串中可能含有未知因素。在这里,作为学习,还是要知道这也是一种方法。

    请注意 eval() 的参数,在字符串两旁加了括号,这是必须的,否则会报错。

    因为 JSON 字符串是被大括号(“{}”)包围的,直接放到 eval() 会被当成语句块来执行,因此要在两旁加上括号,使其变成表达式。

    2. JSON.parse()

    现在绝大多数浏览器都以支持 JSON.parse(),是推荐使用的方式。

    如果输入了不符合规范的字符串,会报错。

    JSON.parse() 可以有第二个参数,是一个函数。此函数有两个参数:name 和 value,分别代表名称和值。当传入一个 JSON 字符串后,JSON 的每一组名称/值对都要调用此函数。该函数有返回值,返回值将赋值给当前的名称(name)。

    利用第二个参数,可以在解析 JSON 字符串的同时对数据进行一些处理

  • 相关阅读:
    《生命3.0—在亿年的尺度下审视生命的演进》阅读笔记3
    软件杯赛题周总结(2)
    《生命3.0—在亿年的尺度下审视生命的演进》阅读笔记2
    记一次阅读源码的小经历
    11
    解决在 CSS 中,如何实现动态吸顶的样式/效果 ?
    Angular 初始化项目后,如何把默认的 .css 文件修改为 .scss 文件?
    解决 Angular 项目中,添加 <router-outlet> 标签后,报错: ‘router-outlet’ is not a known element 的问题。
    在 Angular 项目中,如何为项目单独创建路由文件?
    [NOIP2013 提高组] 《火柴排队》
  • 原文地址:https://www.cnblogs.com/zuichumx0826/p/9052316.html
Copyright © 2020-2023  润新知