1.什么是json?

   JSON全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON 与XML具有相同的特性,是一种数据存储格式,但是JSON相比XML 更易于人编写和阅读,更易于生成和解析。

2.JSON的语法规则:

 1)数据以名称/值对的形式保存,名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值,如 :"firstName" : "John"。JSON的值可以是数字、字符串、null、true、false、数组或对象。

 2)数据有都好分隔

3)花括号保存对象,对象可以包含多个名/值对。

4)方括号保存数组,数组可以包含多个对象。

 5)JSON文件:

  • JSON 文件的文件类型是 ".json"
  • JSON 文本的 MIME 类型是 "application/json"

3.JSON 的两种结构:

1)键值对形式,即Name-Value对的结构结构集合(无序的 )。如:{name1:value1.name2:value2,...};

{"name":"小明","age":"12"}

2)Array(有序的):一组有序的数据列表。例如:[value1,value2,value3,.....],其中,值可以是双引号引起来的字符串(string)、数值(number)、true、false、null、对象(object)或者数组(Array),这些结构都是可以嵌套的。如:

  例一:对象中可以包含数组

   {"root":[{"id":"001","name":"小红"},{"id":"002","name":"小明"},{"id":"003","name":"小丽"}],"total":3,"success":true}

例二:也可以对象嵌套子对象,子对象再嵌套数组:

{"memberList":{"lists":[{"id":"001","name":"小红"},{"id":"002","name":"小明"},{"id":"003","name":"小丽"}]}}

例三:数组中可以包含对象:

[{"id":"001","name":"小红"},{"id":"002","name":"小明"},{"id":"003","name":"小丽"},........]

4.JSON 的取值方式和修改方式:

  如:

var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];

 取值:employees[0].lastName

修改数据:employees[0].lastName="Jobs"

 5.JSON与字符串之间的转化方法:

  JSON转换为字符串(string)格式:var string=JSON.stringify(obj);

  将Json字符串转换为JSON:

   (1)var data=JSON.parse(string);

    function strToJson(){

      return JSON.parse(str);

    }

    使用JSON.parse需严格遵守JSON规范,如属性都需要用引号引起来,否则会出错,如下:

      var str = '{name:"jack"}'; 
      var obj = JSON.parse(str); // --> parse error

    name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。(下面这两种方式则没有问题)

   (2)eval(string);               

    例如:function myEval(){

          var str='{"id":"001","name":"小明","age":10}';

          var obj=eval('('+str+')');

          alert(obj.toJSONString());

      }

    (3) new Function形式

      function strToJson(str){

        var json=(new Function("return"+str))();

      }

    (4)jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象

什么是JSON对象的更多相关文章

  1. 一种简单,轻量,灵活的C#对象转Json对象的方案(续)

    本文参考资料 一种简单,轻量,灵活的C#对象转Json对象的方案 [源码]Literacy 快速反射读写对象属性,字段 一段废话 之前我已经介绍了这个方案的名称为JsonBuilder,这套方案最大的 ...

  2. jQuery中的$.extend方法来扩展JSON对象及合并,方便调用对象方法

    $.extend方法可以扩展JSON对象,用一个或多个其他对象来扩展一个对象,返回被扩展的对象. 例一 合并 settings 和 options,修改并返回 settings var setting ...

  3. Json对象与Json字符串互转(4种转换方式)

    Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 复制代码代码如下: $.parseJS ...

  4. js压缩xml字符串,将xml字符串转换为xml对象,将xml对象转换为json对象

    /** * 压缩xml字符串 */ function compressXmlStr(str){ var prefix, suffix; var i = str.indexOf("\r&quo ...

  5. js中的json对象和字符串之间的转化

    字符串转对象(strJSON代表json字符串)   var obj = eval(strJSON);   var obj = strJSON.parseJSON();   var obj = JSO ...

  6. jQuery中json对象与json字符串互换

    json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串:JSON.stringify(jsonObj); 根据“|”把字符串变成数组.spli ...

  7. Spring MVC学习笔记——返回JSON对象

    1.想要GET请求返回JSON对象,首先需要导入jackson-all-1.9.4.jar包 2.在控制器中添加不同的show()方法 //show()方法返回JSON对象 @RequestMappi ...

  8. JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString

    JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString 如下示例: 直接写的a1就是一个Json对象,a2 就是一个Json对象字符串; 通 ...

  9. JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  10. 深入理解JSON对象

    × 目录 [1]语法规则 [2]stringify [3]parse[4]eval 前面的话 json(javascript object notation)全称是javascript对象表示法,它是 ...

随机推荐

  1. pagination jquery最简单的分页【无刷新和刷新都通用】

    参数说明 参数名 描述 参数值 maxentries 总条目数                           必选参数,整数 items_per_page 每页显示的条目数            ...

  2. HDU 1033 - Edge

    题目很水 然翻译感人 顺时针或者逆时针走,输出坐标 #include <iostream> using namespace std; ]; int p; ]={,,,-,}; ]={,,- ...

  3. [string]Regular Expression Matching

    Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...

  4. C语言常用的库文件(头文件、函数库)

    C语言常用的库文件(头文件.函数库) C系统提供了丰富的系统文件,称为库文件.C的库文件分为两类,一类是扩展名为".h"的文件,称为头文件,在前面的包含命令中我们已多次使用过.在& ...

  5. AJAX远程跨域获取数据

    //本地获取json文件 $.ajax({ url : 'json.php', type : 'post', dataType : 'json',//返回json数据格式 success : func ...

  6. leetcode算法刷题(五)——动态规划(三)

    今天的题目不是leetcode上面的.只是觉得动态规划还是不算很熟练,就接着找了点DP的题练练 最长递增子序列的长度 题目的意思:传入一个数组,要求出它的最长递增子序列的长度.例如:如在序列1,-1, ...

  7. Oracle 11g R2安装手册(图文教程)For Windows

    1.Oracle 11g R2安装手册(图文教程)For Windows 1.下载Oracle 11g R2 for Windows版本,下载地址如下 官方网站: http://download.or ...

  8. umdh工具使用

    先安装工具,http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx 选择其中的http://msdn.microsoft.com/ ...

  9. C4.5较ID3的改进

    1.ID3选择最大化Information Gain的属性进行划分   C4.5选择最大化Gain Ratio的属性进行划分 规避问题:ID3偏好将数据分为很多份的属性 解决:将划分后数据集的个数考虑 ...

  10. Centos6.5升级gcc for qt5.3.1

    1.升级GCC CentOS6.5内置的GCC版本为4.4,而Qt5.2.1则需要4.8.2的支持(支持C++ 11特性),因此,必须先升级GCC wget http://ftp.tsukuba.wi ...