`
z_xiaofei168
  • 浏览: 200963 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浅谈JSON的两种数据结构

    博客分类:
  • JSON
阅读更多

浅谈JSON的两种数据结构

 

JSON主要有两种数据结构:

        1、由key--value对组成的数据结构。这种数据结构在不同的语言中有不同的实现。

        例如:在javascript中是一个对象.而在java中是一种Map结构,c语言中是struct,其它的语言中可能为record hash table 等。 

        2、有序集合、这种数据结构在不同语言中可能有listvertor、数组和序列等实现。

 

下面我就来研究javascript中对这两种方式的语法。

 

1、  用于创建对象的语法

       JSON语法创建对象更像一种Map结构,它是一种由key-value对组成数据结构。

 

   创建Object对象:总是以{开始以}结束,对象的每个属性名与属性值之间用英文的默冒号(:分隔,多个属性之间用英文的(,)隔开:语法格式如下:

     

Student = {
      Name:’z_xiaofei168’
      ……
      Sex:’男'
}

 

 

     Student = { Name:’z_xiaofei168', …… Sex:’男' }  

 

备注:

使用JSON语法创建对象时,属性不仅可是普通的字符,而且可以是任何基本数据类型,还可以是函数,数组,甚至是另外一个用JSON语法创建的对象.

 

比如:

Teacher = {
       Name:’z_xiaofei168',
       Student:{
             Name:’xuedong’,
             Sex:’男'
       }

      //使用JSON为teacher对象分配一个方法
    toString:function(){
      alert(“方法的测试…….”);
      }

}

 

 

2、  用于创建数组的语法

 

JSON创建数组是分常重要的.

 

       JSON创建数组以英文的中括号[开始,然后以中括号]结束.其中放入数组的元素.元素之间用英文的逗号,分开最后的不需要英文逗号。

例如:

 Arr = [value1,value2,value3,………]

 

    通过上面的讲解我理解了JSON创建Javascript对象及数组的方式,那么下面我们就来实现xmlJson之间的转换.

  

 

 

<?xml version="1.0" encoding="UTF-8"?>
<cities>
	<province name="北京">
		<city>昌平</city>
		<city>朝阳</city>
		<city>海淀</city>
	</province>
	
	<province name="河北">
		<city>石家庄ity>
		<city>保定</city>
		<city>张家口</city>
	</province>
</cities>
 

 

转换成JSON

 

cities =[
        province1:{
              name:’河北',
         city[
             ’石家庄','保定',...
      ]
        }
        province2:...
]

 

 

 

9
3
分享到:
评论
4 楼 裴小星 2011-05-12  
flam 写道
key和value都加双引号,是什么意思。


标准JSON的 key 都是要加双引号的,
否则某些 JSON Parser 可能会转失败,
比如 jQuery 1.4 之后,就要求 key 都用双引号包裹。
(实际上jQuery会优先使用浏览器内置的parser,这些parser的要求通常比较严格)

value不一定要加双引号,加双引号表示是 String 类型。


事实上 Object 的 key 最后都是转成 String 的 (自动调用toString),
(因此,很遗憾地,实际上我们实际上没法将一个 Object 作为另一个 Object 的 key)


obj = {};
another = {};

obj[1] = 'somthing';
obj[another] = 'somthing';

for (var key in obj) {
    document.write("type of key: " + typeof key + '<br />');
    document.write("actual value of key: " + key + '<br />');
    document.write('<br />');
}


输出结果:
type of key: string
actual value of key: 1

type of key: string
actual value of key: [object Object]



平时代码中不加双引号只是一种便捷的写法(语法糖)。
3 楼 flam 2011-05-11  
key和value都加双引号,是什么意思。
2 楼 z_xiaofei168 2011-05-10  
abcde5342376 写道
。。。。太少了吧

哥们,会的不多,要不你教我点
1 楼 abcde5342376 2011-05-10  
。。。。太少了吧

相关推荐

    JSON浅谈-2

    JSON的基本结构建立在两种构造之上: 1. 名称/值对的集合(一个对象):在不同的编程语言中,这种结构可以被理解为对象、记录、结构、字典、哈希表、键列表或关联数组。在JSON中,一个对象由一系列名称和值组成,...

    浅谈ios中的json解析(转载)

    在iOS开发中,JSON(JavaScript Object Notation)是一种常见的数据交换格式,被广泛用于服务器与客户端之间的通信。本文将深入探讨iOS中如何进行JSON解析,包括基本概念、解析方法以及实际应用示例。 首先,JSON是...

    浅谈springMVC接收前端json数据的总结

    除了这两种主要方式,还可以使用诸如List、Set等集合类型,或者POJO、DTO(数据传输对象)等复杂的数据结构来接收JSON数据,只要这些类型能够通过JSON序列化/反序列化机制与JSON数据结构相对应。 在传输数据时,...

    浅谈json取值(对象和数组)

    最后,这篇文章通过实例演示了在JavaScript中,利用jQuery处理JSON数据时,对于对象和数组两种不同数据结构的取值方法。这种处理方式不仅在Web开发中非常实用,而且对理解JSON数据结构及其在Web应用中的应用有着重要...

    浅谈JSON.parse()和JSON.stringify()

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它们常被用于客户端和服务端的数据传输和存储。 1. JSON.parse() 方法主要用于将JSON格式的字符串...

    浅谈JS中json数据的处理

    JSON数据主要以两种基本结构呈现:对象(Object)和数组(Array)。下面我们将深入探讨JSON数据在JavaScript中的处理。 1. **JSON数据结构** JSON对象由键值对构成,键用双引号包围,值可以是字符串、数字、布尔值...

    浅谈PHP中JSON数据操作

    JSON主要由两种结构组成:对象和数组。对象是由键值对构成的无序集合,用大括号{}包围,其中键是字符串,而值可以是字符串、数字、对象、数组、布尔值或null。数组是由值的有序集合构成,用方括号[]包围,数组中的值...

    浅谈Python中的异常和JSON读写数据的实现

    此外,`json.dumps()`用于将Python数据结构转换为JSON字符串,而`json.loads()`则将JSON字符串反序列化为Python数据结构。例如: ```python data = {"name": "Alice", "age": 30} json_str = json.dumps(data) # 将...

    浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但同时也使用了类似于C家族语言(包括JavaScript)的结构,因此非常适合人阅读和编写,也便于机器解析和生成。...

    浅谈python中对于json写入txt文件的编码问题

    在Python中,使用json模块的dumps函数可以将Python字典或列表等数据结构转换成JSON格式的字符串。默认情况下,json.dumps()函数会确保输出的JSON字符串是ASCII编码的,即确保所有非ASCII字符都被转义成\uXXXX这样的...

    浅谈soap协议

    ### 浅谈SOAP协议 #### 一、为什么需要SOAP? 随着信息技术的发展,现代企业的信息化建设面临着日益复杂的挑战。为了应对这种复杂性,企业需要构建一套兼容性强、支持多平台、多系统的解决方案。这意味着信息系统...

    浅谈JsonObject中的key-value数据解析排序问题

    JsonObject便是这样一种数据结构,它以键值对的形式存储数据,在许多编程语言和库中都可以找到它的身影。本文将深入探讨JsonObject中key-value数据解析的排序问题,以及如何实现有效的排序。 首先,让我们来理解...

    浅谈python的dataframe与series的创建方法

    在Python的数据分析库Pandas中,Series和DataFrame是最基础也是最常用的两种数据结构。Series相当于一个一维数组,其可以包含任何数据类型(整数、字符串、浮点数、Python对象等),并且每一个元素都有一个与之对应...

    浅谈C# 序列化与反序列化几种格式的转换

    3. **JSON到其他数据结构的转换** - **JSON到List**: `JSONStringToList&lt;T&gt;`方法将JSON字符串转换为`List&lt;T&gt;`对象。 ```csharp public List&lt;T&gt; JSONStringToList(string strJson) { JavaScriptSerializer ...

    浅谈JavaScript中ES6新增的Set和Map结构以及Array.from方法

    Set 和 Map 是 JavaScript 中 ES6 引入的两种新的数据结构,它们提供了更高效和便捷的方式来处理数据。本文将深入探讨这两个数据结构及其相关的 `Array.from` 方法。 首先,让我们来详细了解一下 Set 结构。Set ...

    浅谈redis在项目中的应用

    6. 数据持久化:Redis支持RDB和AOF两种持久化方式。RDB是通过快照的方式,在指定的时间间隔内将内存中的数据保存到磁盘上。AOF则是将写命令追加到文件中,以此来记录数据库的变化。在更新实例中,如果数据在数据库中...

    浅谈vue中get请求解决传输数据是数组格式的问题

    当使用GET请求时,参数通常会被编码并附加到URL上。然而,如果这些参数是数组形式...通过理解`qs`库的工作原理和配置选项,你可以更灵活地处理各种数据结构的传输。记住,始终根据后端接口的预期格式来调整序列化策略。

    浅谈javascript中自定义模版

    这种方法简单直接,但是它仅仅适合于数据结构简单、模板较为静态的场景。 第二种方法是使用更复杂的模板引擎。模板引擎能够处理更复杂的逻辑,如条件判断、循环结构等。在提供的代码片段中,`TemplateEngine`函数的...

    浅谈JavaScript中面向对象的的深拷贝和浅拷贝

    总结,理解JavaScript中的深拷贝和浅拷贝对于处理复杂的数据结构至关重要。深拷贝提供了完全独立的副本,而浅拷贝则可能导致意外的副作用。在处理对象拷贝时,应根据具体需求选择合适的方法,以确保代码的预期行为。

Global site tag (gtag.js) - Google Analytics