`

json结构

阅读更多

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 格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物。

 

分享到:
评论

相关推荐

    常用汉字集合json结构版

    精心整理常用汉字2000个,包含汉字名称,笔画数,释义等字段,可下载应用于数据库基础数据构建上层应用,数据格式为json,noSql数据库可以直接导入,sql数据库请自行转换结构。

    json结构解析工具

    JSON结构解析工具是针对这种格式设计的,旨在帮助程序员和策划人员更方便地理解和处理JSON数据。 JSON的数据结构主要包括对象(Object)和数组(Array)两种基本类型,以及字符串(String)、数字(Number)、布尔...

    json 查看器,检查json结构,方便查看json

    JSON查看器则是一种工具,帮助开发者更好地理解和检查JSON结构,确保其符合规范,从而避免在数据交换过程中出现错误。 标题中的"json 查看器"指的是专门用来查看和分析JSON格式数据的软件或在线工具。这些工具通常...

    三级城市文档json结构

    在"三级城市文档json结构"这个场景中,我们通常会看到一个包含国家、省份、城市层级的数据组织方式。 在JSON中,数据以键值对(key-value pairs)的形式存储,键用引号包围,值可以是字符串、数字、布尔值、数组、...

    查看json结构的小工具

    标题中的“查看json结构的小工具”指的是用于解析和可视化JSON(JavaScript Object Notation)数据的软件工具。JSON是一种轻量级的数据交换格式,常用于Web服务和应用程序之间的数据传输。这种小工具通常具有用户...

    java解析json结构的数据

    好用的json包,更容易解析json数据结构

    把 json 结构数据解析成标准的 sql, 实现标准化和自动化的增删改查.zip

    如果JSON结构包含嵌套的对象或数组,这可能需要创建多对一或一对多的关联关系。 在C、C++、Java或Python中,都有相应的库来处理JSON解析。例如,C++有RapidJSON,Java有Jackson或Gson,Python有内置的json模块。...

    Ruby-Jbuilder通过一个构建式DSL创建JSON结构

    Ruby中的Jbuilder库就是为了方便开发者创建JSON结构而设计的。 Jbuilder是一个Ruby gem,它提供了一个简洁的Domain Specific Language (DSL),让开发者能够通过一种构造式的语法来构建复杂的JSON对象,避免了手动...

    全国省/市/县三级json结构

    全国省/市/县三级json结构

    json一键转换为易语言自定义数据类型1

    通过这个方法,可以自动化地将 JSON 对象映射到易语言的数据结构中,避免手动创建复杂数据结构的繁琐工作。 【标签】:JSON,易语言,数据类型,转换,自动化 **1. 简要介绍** 在开发过程中,我们经常需要处理 ...

    json结构数据的生成与解析,json与 xml之间相互转换

    JSONUtils 实现了json结构数据的生成与解析,json与 xml之间相互转换

    在C代码里使用JSON结构类型

    在C代码里使用JSON结构类型

    Google Gson的使用方法,实现Json结构的相互转换源代码

    Google Gson的使用方法,实现Json结构的相互转换源代码 在Java开发中,有时需要保一个数据结构成字符串,可能你会考虑用Json,但是当Json字符串转换成Java对象时,转换成的是JsonObject,并不是你想要的Class类型的...

    Go-Gabs是一个用来解析创建和编辑动态或未知JSON结构的golang库

    Gabs 是一个用来解析、创建和编辑动态或未知JSON 结构的golang库。通过包装json.Marshal/json.Unmarshal的行为和map[string]interface{} 对象,Gabs提供了更大的便利性。

    C++调用cjson解析数组

    在IT领域,尤其是在软件开发中,跨语言交互和数据处理是常见的需求。C++作为一款强大的系统级编程语言,有时需要处理JSON(JavaScript Object ...在实际应用中,还需要根据具体JSON结构和业务需求进行适配和扩展。

    用json结构来创建一个不一样的数据库-易语言

    标题 "用json结构来创建一个不一样的数据库-易语言" 提示我们这个项目是关于使用JSON数据格式构建非传统的数据库,并且是用易语言(EasyLanguage)实现的。易语言是一种面向对象、简单易学的编程语言,其目标是降低...

    HiJson一键格式化json,看清json整体结构

    然而,原始的JSON数据通常以紧凑的形式存在,没有缩进和换行,这在查看和理解大型或复杂的数据结构时可能会带来困扰。这就是"HiJson一键格式化json"工具的作用。 "HiJson一键格式化json"是一款小巧但功能强大的工具...

    json离线格式化工具

    它提供了一个友好的界面,可以将杂乱无章的JSON字符串转换成结构清晰、缩进整齐的格式,使数据更易于阅读和分析。 使用JSON离线格式化工具,用户可以执行以下操作: 1. **输入/粘贴JSON数据**:用户可以直接在工具...

Global site tag (gtag.js) - Google Analytics