jsonarray有序还是无序,array是有序的吗

http://www.itjxue.com  2023-01-16 05:06  来源:未知  点击次数: 

JSON的定义

JSON是一种文本格式结构化数据的序列化。

JSON有四种原始类型:

两种结构化类型:

字符串(string)是以0个或更多的Unicode字符组成的序列。

对象(object)是以键值对(name/value)组成的无序集合,键名(name)必须是字符串类型,键值必须是字符串(string)、数值(number)、布尔(boolean)、空(null)、对象(object)或数组(array)中的一种。

数组(array)是0个或多个值(value)的有序集合。

JSON的设计目标是让JSON成为最小的,便携的,文本的,JavaScript的子集。

JSON 内容类型有如下几种:

根据 RFC 4627 文件,

The MIME media type for JSON text is application/json.

Type name: application

Subtype name: json

所以认为:The MIME media type for JSON text is application/json. The default encoding is UTF-8。

spring 检验是否是jsonarray

这是不是普通的字符串,而是json格式的字符串,所以在判断的时候,可以选择将多个字符串转成jsonArray格式。

JSONArray是一个有序的值序列,它的外部文本形式是一个用方括号括起来的字符串,用逗号分隔值,内部表单是具有索引的对象“get”和“opt”用于通过索引访问值的“element”方法,以及用于添加或替换值的方法。构造函数可以将JSON文本转换为Java对象。该 toString方法转换为JSON文本。

json list格式是怎么样的

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

规则如下:

1、映射用冒号(“:)表示。名称:值

2、并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2

3、映射的集合(对象)用大括号(“{}”)表示。此格式对应Java中的JsonObject。标准的json可以对应一个JsonObject

下面值1,值2可以是“4”中的格式JsonArray {name:JsonArray,name:JsonArray,name:JsonArray}

{

名称1:值1,

名称2:值2

}

4、并列数据的集合(数组)用方括号(“[]”)表示。此格式对应Java中的JsonArray

[

{名称1:值,名称2:值2},

{名称1:值,名称2:值2}

]

注意:json是一种格式,传输的过程中是String类型的,需要使用对应的方法把其转化成JsonObject对象或JsonArray对象。

5、元素值可具有的类型:string,number, object, array, true, false, null

注意:1、JSON 用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。可用大括号分级嵌套数据。

2、对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。

6、JSON主要有两种数据结构

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

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

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

js中 new Array()出的数组是有序还是无序的?

数组是有序的,只要没有通过其他方法对数组顺序调整,如sort,数组就会按顺序出来

Jquery中,如何固定一种遍历json的顺序?

这和各浏览器的Map键名的遍历方法相关,jquery只不过是包装了一下 for (key in obj)。

解决方法为将键名放入的数组,通过遍历数组的方式就不会有问题了。

var a = [];

$.each(obj, function(key, val) { a[a.length] = key; });

a.sort();

$.each(a, function(i, key) {

window.alert("key = " + obj[key]); // 访问JSON对象属性

});

json对象和json对象数组有什么区别

Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。

1) 并列的数据之间用逗号(”, “)分隔。

2) 映射用冒号(”: “)表示。

3) 并列数据的集合(数组)用方括号(“[]“)表示。

4) 映射的集合(对象)用大括号(”{}”)表示。

上面四条规则,就是Json格式的所有内容。

比如,下面这句话:

“北京市的面积为16800平方公里,常住人口1600万人。上海市的面积为6400平方公里,常住人口1800万。”

写成json格式就是这样:

[

{"城市":"北京","面积":16800,"人口":1600},

{"城市":"上海","面积":6400,"人口":1800}

]

如果事先知道数据的结构,上面的写法还可以进一步简化:

[

["北京",16800,1600],

["上海",6400,1800]

]

由此可以看到,json非常易学易用。所以,在短短几年中,它就取代xml,成为了互联网上最受欢迎的数据交换格式。

我猜想,Douglas Crockford一定事先就知道,数据结构可以简化成三种形式,否则怎么可能将json定义得如此精炼呢!

3.

学习javascript的时候,我曾经一度搞不清楚”数组”(array)和”对象”(object)的根本区别在哪里,两者都可以用来表示数据的集合。

比如有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后你运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么我到底该用哪一种呢?

我后来才知道,数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。

4.

当然,数组和对象的另一个区别是,数组的数据没有”名称”(name),对象的数据有”名称”(name)。

但是问题是,很多编程语言中,都有一种叫做”关联数组”(associative array)的东西。这种数组中的数据是有名称的。

比如在javascript中,可以这样定义一个对象:

var a={“城市”:”北京”,”面积”:16800,”人口”:1600};

但是,也可以定义成一个关联数组:

a["城市"]=”北京”;

a["面积"]=16800;

a["人口"]=1600;

这起初也加剧了我对数组和对象的混淆,后来才明白,在Javascript语言中,关联数组就是对象,对象就是关联数组。这一点与php语言完全不同,在php中,关联数组也是数组。

比如运行下面这段javascript:

var a=[1,2,3,4];

a['foo']=’Hello World’;

alert(a.length);

最后的结果是4,也就是说,数组a的元素个数是4个。

但是,运行同样内容的php代码就不一样了:

?php

$a=array(1,2,3,4);

$a["foo"]=”Hello world”;

echo count($a);

?

最后的结果是5,也就是说,数组a的元素个数是5个。

(责任编辑:IT教学网)

更多

推荐软件水平考试文章