JSON结构有两种结构
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
简单地说[2] ,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。
按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对":
{"firstName":"Brett"}
这个示例非常基本,而且实际上比等效的纯文本"名称 / 值对"占用更多的空间:
firstName=Brett
但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的 记录,比如:
{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}
从语法方面来看,这与"名称 / 值对"相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。
表示数组
当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在XML中,需要许多开始标记和结束标记;如果使用典型的名称 / 值对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName这样的形式。
如果使用 JSON,就只需将多个带花括号的记录分组在一起:
{ "people":[ {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}, {"firstName":"Jason","lastName":"Hunter","email":"bbbb"}, {"firstName":"Elliotte","lastName":"Harold","email":"cccc"} ] }
这不难理解。在这个示例中,只有一个名为 people的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):
{ "programmers": [{ "firstName": "Brett", "lastName": "McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName": "Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName": "Harold", "email": "cccc" }], "authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "sciencefiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christianfiction" }], "musicians": [{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }] }
这里最值得注意的是,能够表示多个值,每个值进而包含多个值。但是还应该注意,在不同的主条目(programmers、authors 和 musicians)之间,记录中实际的名称 / 值对可以不一样。JSON 是完全动态的,允许在 JSON 结构的中间改变表示数据的方式。
在处理 JSON 格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物。
相关推荐
精心整理常用汉字2000个,包含汉字名称,笔画数,释义等字段,可下载应用于数据库基础数据构建上层应用,数据格式为json,noSql数据库可以直接导入,sql数据库请自行转换结构。
JSON结构解析工具是针对这种格式设计的,旨在帮助程序员和策划人员更方便地理解和处理JSON数据。 JSON的数据结构主要包括对象(Object)和数组(Array)两种基本类型,以及字符串(String)、数字(Number)、布尔...
JSON查看器则是一种工具,帮助开发者更好地理解和检查JSON结构,确保其符合规范,从而避免在数据交换过程中出现错误。 标题中的"json 查看器"指的是专门用来查看和分析JSON格式数据的软件或在线工具。这些工具通常...
在"三级城市文档json结构"这个场景中,我们通常会看到一个包含国家、省份、城市层级的数据组织方式。 在JSON中,数据以键值对(key-value pairs)的形式存储,键用引号包围,值可以是字符串、数字、布尔值、数组、...
标题中的“查看json结构的小工具”指的是用于解析和可视化JSON(JavaScript Object Notation)数据的软件工具。JSON是一种轻量级的数据交换格式,常用于Web服务和应用程序之间的数据传输。这种小工具通常具有用户...
好用的json包,更容易解析json数据结构
如果JSON结构包含嵌套的对象或数组,这可能需要创建多对一或一对多的关联关系。 在C、C++、Java或Python中,都有相应的库来处理JSON解析。例如,C++有RapidJSON,Java有Jackson或Gson,Python有内置的json模块。...
Ruby中的Jbuilder库就是为了方便开发者创建JSON结构而设计的。 Jbuilder是一个Ruby gem,它提供了一个简洁的Domain Specific Language (DSL),让开发者能够通过一种构造式的语法来构建复杂的JSON对象,避免了手动...
全国省/市/县三级json结构
通过这个方法,可以自动化地将 JSON 对象映射到易语言的数据结构中,避免手动创建复杂数据结构的繁琐工作。 【标签】:JSON,易语言,数据类型,转换,自动化 **1. 简要介绍** 在开发过程中,我们经常需要处理 ...
JSONUtils 实现了json结构数据的生成与解析,json与 xml之间相互转换
在C代码里使用JSON结构类型
Google Gson的使用方法,实现Json结构的相互转换源代码 在Java开发中,有时需要保一个数据结构成字符串,可能你会考虑用Json,但是当Json字符串转换成Java对象时,转换成的是JsonObject,并不是你想要的Class类型的...
Gabs 是一个用来解析、创建和编辑动态或未知JSON 结构的golang库。通过包装json.Marshal/json.Unmarshal的行为和map[string]interface{} 对象,Gabs提供了更大的便利性。
在IT领域,尤其是在软件开发中,跨语言交互和数据处理是常见的需求。C++作为一款强大的系统级编程语言,有时需要处理JSON(JavaScript Object ...在实际应用中,还需要根据具体JSON结构和业务需求进行适配和扩展。
标题 "用json结构来创建一个不一样的数据库-易语言" 提示我们这个项目是关于使用JSON数据格式构建非传统的数据库,并且是用易语言(EasyLanguage)实现的。易语言是一种面向对象、简单易学的编程语言,其目标是降低...
然而,原始的JSON数据通常以紧凑的形式存在,没有缩进和换行,这在查看和理解大型或复杂的数据结构时可能会带来困扰。这就是"HiJson一键格式化json"工具的作用。 "HiJson一键格式化json"是一款小巧但功能强大的工具...
它提供了一个友好的界面,可以将杂乱无章的JSON字符串转换成结构清晰、缩进整齐的格式,使数据更易于阅读和分析。 使用JSON离线格式化工具,用户可以执行以下操作: 1. **输入/粘贴JSON数据**:用户可以直接在工具...