`
hekeji
  • 浏览: 51344 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

转:JSON

阅读更多
转自:http://blog.csdn.net/lovehongyun/archive/2008/09/24/2971341.aspx

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

JSON具有以下这些形式:

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

字符串(string)与C或者Java的字符串非常相似。

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

空白可以加入到任何符号之间。 以下描述了完整的语言。(以上部分摘自:http://www.json.org/json-zh.html)

 

JSON举例(javascript中使用json):

先来个最简单的:

   1. <script type="text/javascript">
   2.         var user = {"Id":1,"Name":"Hubery","Age":23,"Email":"hubery@163.com"};
   3.         alert(user.Id); //这样访问也没问题alert(user["Id"]);
   4.         alert(user.Name);
   5.         alert(user.Age);
   6.         alert(user.Email);
   7. </script>

我们添加Address属性,定义更细的用户信息结构:

   1. <script type="text/javascript">
   2. var user = 
   3.           {
   4.             "Id":1,
   5.             "Name":"Hubery",
   6.             "Age":23,
   7.             "Address":
   8.               {
   9.                   "City":"Beijing","ZipCode":"111111"
  10.               },
  11.             "Email":"hubery@163.com"
  12.           };
  13.           
  14.           alert(user.Id);
  15.           alert(user.Name);
  16.           alert(user.Age);
  17.           alert(user.Address.City);
  18.           alert(user.Address.ZipCode);
  19.           alert(user.Email);
  20. </script>

下面我们把Address属性定义成数组,用户有两个Address:

   1. <script type="text/javascript">
   2. var user = 
   3.           {
   4.             "Id":1,
   5.             "Name":"Hubery",
   6.             "Age":23,
   7.             "Address":
   8.               [
   9.                 {"City":"Beijing","ZipCode":"111111"},
  10.                 {"City":"Langfang","ZipCode":"222222"}
  11.               ],
  12.             "Email":"hubery@163.com"
  13.           };
  14.           
  15.           alert(user.Id);
  16.           alert(user.Name);
  17.           alert(user.Age);
  18.           alert(user.Address[0].City);//还可以这样:alert(user.Address[0]["City"]);
  19.           alert(user.Address[0].ZipCode);
  20.           alert(user.Address[1].City);
  21.           alert(user.Address[1].ZipCode);
  22.           alert(user.Email);
  23. </script>

如果我们想要一个用户列表,能行吗?答案是,没问题!

   1. <script type="text/javascript">
   2. var user = 
   3.           [
   4.               {
   5.                 "Id":1,
   6.                 "Name":"Hubery",
   7.                 "Age":23,
   8.                 "Address":
   9.                   [
  10.                     {"City":"Beijing","ZipCode":"111111"},
  11.                     {"City":"Langfang","ZipCode":"222222"}
  12.                   ],
  13.                 "Email":"hubery@163.com"
  14.               },
  15.               {
  16.                 "Id":2,
  17.                 "Name":"Chris",
  18.                 "Age":24,
  19.                 "Address":{"City":"Beijing","ZipCode":"100085"},
  20.                 "Email":"chris@163.com"
  21.               }
  22.           ]
  23.           
  24.           alert("Id: "+user[0].Id+"\r\nName: "+
  25.           user[0].Name+"\r\nAge: "+
  26.           user[0].Age+"\r\nAddress: ("+
  27.           user[0].Address[0].City+","+user[0].Address[0].ZipCode+") ("+user[0].Address[1].City+","+user[0].Address[1].ZipCode+")\r\nEmail: "+
  28.           user[0].Email);
  29.           
  30.           alert("Id: "+user[1].Id+"\r\nName: "+
  31.           user[1].Name+"\r\nAge: "+
  32.           user[1].Age+"\r\nAddress: ("+
  33.           user[1].Address.City+","+user[1].Address.ZipCode+")\r\nEmail: "+
  34.           user[1].Email);
  35. </script>
分享到:
评论

相关推荐

    JSON.stringify()报错:JSON未定义

    标题中的“JSON.stringify()报错:JSON未定义”是一个常见的JavaScript错误,通常出现在尝试使用`JSON.stringify()`方法但全局环境中没有定义JSON对象时。在浏览器环境中,JSON是默认支持的,但在某些旧版本的IE...

    json-lib应用所有jar

    5. **XML与JSON互转**:JSON-lib还提供了XML和JSON之间的转换功能,这对于那些需要在XML和JSON间切换的应用非常有用。 综上所述,JSON-lib作为一个强大的Java JSON处理库,极大地简化了JSON在Java开发中的使用。...

    python:json转换

    在Python编程语言中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,它以其简洁、易读性而受到广泛欢迎。JSON格式与Python的字典和列表结构有天然的对应关系,因此Python提供了内置的`json`模块来...

    《JSON-lib框架,转换JSON、XML不再困难》学习笔记

    4. Java对象转换为JSON:JSON-lib提供了`JSONObject.fromObject()`方法,可以将Java对象直接转换为JSON表示。这包括基本类型、复杂对象、甚至集合和数组。 5. JSON转换为Java对象:相反,`JSONObject.toBean()`或`...

    iOS json一键转换Model

    (json: [String : Any])`方法,传入JSON字典,JSONModel会自动将JSON数据转换为模型对象。 4. 错误处理:如果转换过程中出现错误,可以通过捕获异常或检查返回的可选值来处理。 5. 使用模型:转换成功后,可以直接...

    net.sf.json2.4

    这个库的主要功能是帮助开发者在Java应用程序中生成和解析JSON(JavaScript Object Notation)字符串,这是一种轻量级的数据交换格式,常用于服务器与客户端之间的数据传输,因其简洁和高效而广受欢迎。 描述中提到...

    j2ee22:json

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间的数据传输。它基于JavaScript的一个子集,设计简单易读,同时也易于机器解析和生成。在J2EE(Java 2 Platform, ...

    json格式转换jar包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间的数据传输,因为它易于阅读和编写,同时也易于机器解析和生成。本篇将详细讲解JSON格式转换的相关知识点,以及...

    json转对象 json转对象json转对象 json转对象 json转对象 json转对象

    json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象...

    CPP转Json字符串

    标准json字符串编码使用unicode,即boost 提供的 中拼接起来的字符串采用unicode字符集编码,而很多网页采用编码为utf8。 这个库字符编码采用系统编码,系统采用utf8字符集的话拼接起来字符串就是ut8了;另外在博客...

    json转换jsonschema

    而JSON Schema则是一个JSON格式的规范,用于定义JSON数据的结构和限制,类似于XML Schema,它为JSON数据提供了验证规则,确保数据的准确性和一致性。 在JavaScript开发中,有时我们需要将JSON对象转换为JSON Schema...

    Dynamics CRM 2011 编程系列:JSON序列化类

    在这个特定的知识点中,我们聚焦于“Dynamics CRM 2011 编程系列:JSON序列化类”。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务和客户端脚本之间的数据传递。在Dynamics CRM ...

    如何把PostMan导出的json文件生成md或html的接口文档(ps:json文件有些要自己配)

    如何把PostMan导出的json文件生成md或html的接口文档(ps:json文件有些要自己配)

    头歌教学实践平台 Web前端开发基础 JavaScript学习手册十一:JSON

    5. AJAX与JSON: 在Web开发中,AJAX(Asynchronous JavaScript and XML)常用于实现页面的异步更新,JSON作为XML的替代,因其简洁性和与JavaScript的兼容性而被广泛应用。 6. JSONP(JSON with Padding): 由于...

    json2toml:将JSON转换为TOML

    json2toml 将JSON转换为 。例子var json2toml = require ( 'json2toml' ) ;json2toml ( { simple : true } ) ;// =&gt; 'simple = true\n'// Also supports pretty-printing optionsjson2toml ( { deeply : { option : ...

    MFC使用json11解析JSON

    此外,为了将MFC应用的内部数据结构序列化为JSON,你可以创建相应的函数,将对象的属性映射到json11对象,然后调用`Json::dump`。 在实际项目中,你可能还需要处理JSON解析的错误情况,比如使用`Json::parse`时可能...

    JSON重要工具: json.js

    ### JSON重要工具:json.js深度解析 #### 引言 在现代Web开发中,JSON(JavaScript Object Notation)已经成为数据交换的标准格式之一。它简洁、轻量,易于人阅读和编写,同时也易于机器解析和生成。为了更好地...

    Map转成json

    在编程领域,数据转换...通过以上介绍,你应该对Map转Json以及Json的基本概念有了初步理解。在实际开发中,正确地处理这些数据转换对于数据的存取和交换至关重要。记得选择适合你的编程语言的库或工具来简化这一过程。

    json-lib相关联的所有包

    该项目的主要目标是使Java程序员能够轻松地将JSON与Java对象进行互转,从而简化数据交换过程。 在json-lib中,主要包含以下几个核心概念和功能: 1. JSON对象:JSON对象在Java中表现为HashMap的子类,可以存储键值...

    Python基础教程:json序列化详细用法介绍.pdf

    在Python编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁、易读、易于解析的特点而广泛应用于数据传输。Python内置的`json`模块为我们提供了将Python对象转换为JSON格式以及从JSON...

Global site tag (gtag.js) - Google Analytics