JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
比较标准的写法:
var json = '{"a":"1", "b":"2"}';
var data = eval('('+ json +')');
alert(data.a);
alert(data['a']);
这样两种方式都可以取到json中的值。
但是当key的值为数字时,只能使用类似数组下表的访问方式取值。
var json = '{"0":"a", "1":"b", "length":2}';
var data = eval('(' + json + ')');
//alert(data.0); //报错,此方式不可用
alert(data['0']);
alert(data[0]); //注意此写法与数组用下标访问是相同的
alert(data.length) //貌似数组的长度
1.使用json时,通常都使用第一种方式,且key一般应使用合法的变量名(字母或下划线开头的包括字母、下划线和数字的字符串)
2.对象的两种访问方式:data.key和data[’key’]各自有自己的应用场景,一般情况使用data.key即可,也比较直观(它符合其它高级语言中访问对象中属性的方式);
当key为一个变量时,并且使用在循环中,用data['key']这种方式。
for(var i=0; i < 10; i++) {
s += data['key' + i]; //循环调用,可简化代码
}
3.第三种采用数字做key的方式,虽然不推荐,但也是有其应用价值的;
如当建立一个与数据库中id一一对应的map对象的时候,
可直接用id的数值做key,虽然你可以给它加上一个字母前缀来让它符合合法的变量名的标准,
并让它的数据能通过data.key的方式访问,
但如果数据量非常大的话,
为每个id都加一个前缀,+字符连接运算也是要消耗性能的,
特别是在很少需要采用data.key方式去访问属性的情况下,
那么可以抛弃此调用方式,直接用数字做key也未尝不可,
除了key名称不符合合法变量名的标准之外,似乎并没有其它损失;
分享到:
相关推荐
在这个示例中,我们首先使用`JavaScriptSerializer`将JSON字符串转换为`Dictionary, object>`,然后遍历这个字典,对每个键执行转换操作,并将转换后的键和对应的值放入新的字典`resultDict`中。`ConvertKey`方法...
JSON数据通常包含键值对,键是字符串,值可以是多种数据类型,如字符串、数字、布尔值、数组或嵌套的JSON对象。在Java中,我们可以使用`JSONObject`和`JSONArray`(来自org.json库)来操作JSON数据。例如: ```...
本篇文章将深入探讨JSON键为数字时的调用方式,并通过示例代码进行演示。 在PHP中,当键是数字时,它会被自动视为数组索引。例如: ```php $array = array('result' => array("90" => "90 队列", "status" => ...
在Java编程中,将JSON对象转换为Java Bean对象是一个常见的任务,特别是在处理Web服务或API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而Java Bean是符合特定规范的Java类,通常用于...
在处理JSON数据时,我们经常会遇到格式不一致的情况,这主要源于JSON的灵活性,它可以包含对象、数组、字符串、数字、布尔值以及null等多种数据类型。对于格式不确定的JSON字符串,Java提供了多种库来帮助我们解析,...
JSON格式通常由键值对组成,键用引号括起来,值可以是字符串、数字、布尔值、数组、null或另一个JSON对象。 在处理JSON数据时,我们经常需要对JSON字符串进行解析,将其转化为JavaScript对象以便进一步操作。当JSON...
键用双引号 `"key"` 指定,值可以是字符串、数字、布尔值、数组、null 或其他JSON对象。例如: ```json { "name": "张三", "age": 30, "isStudent": false } ``` 2. JSON数据类型 - 字符串:用双引号包围的...
JSON数据由键值对组成,键(key)是字符串,值(value)可以是多种数据类型,包括字符串、数字、布尔值、数组、对象等。动态未知key意味着JSON对象的键在编写代码时未知,可能在运行时由用户输入或者其他方式动态...
2,对于API响应JSON数据,需要对比时使用文档中第二个工具集,可以指定忽略噪声字段,比较强大。 不废话:https://github.com/kvnxiao/jsonequals 使用至今,发现对JsonArray的顺序是必须判断的,需要自定义修改。
因此,访问键为 "90" 的值时,仍然使用数组方式 `data1[90]`,而对于非数字的键,可以使用点号 `data1.status` 或者数组方式 `data1['status']` 访问。 总结来说,当 JSON 键名是数字时,无论在 PHP 还是在 ...
它主要由键值对(key-value pairs)组成,键用引号包围,值可以是字符串、数字、布尔值、数组、null或其他JSON对象。 2. **LabVIEW中的JSON支持**:从LabVIEW 2013版本开始,内置了对JSON的支持。提供了JSON解析器...
- **键值对**:JSON数据以键值对的形式存储,键是字符串,值可以是多种类型(字符串、数字、布尔值、数组、对象、null)。 - **数据格式**:JSON数据格式必须遵循严格的规则,如键必须用双引号包围,字符串同样如此...
`asInt()`函数用于将`Json::Value`对象转换为整型值,这样我们就可以读取并使用"key"对应的数值了。 关于C++中的键值对操作,`Json::Value`提供了灵活的方式来访问和修改JSON对象的属性。键可以是字符串,而值可以...
1. **灵活的数据模型**:JSON-C的核心是一个动态类型系统,它可以表示JSON的所有数据类型,包括对象(键值对)、数组、字符串、数字、布尔值和null。这种灵活性使得在C语言中处理JSON数据无需预先定义复杂的结构。 ...
总的来说,当使用`json_encode`处理包含数字键的数组时,如果希望保持原始顺序,可以考虑将数字键转换为字符串。在本案例中,添加前导空格是一种可行的解决方案,但也可以根据实际需求选择其他方法,如使用以字母或...
JSON支持的值类型有字符串(用双引号包围)、数字(整数或浮点数)、布尔值(`true`或`false`)、null、数组(用方括号`[]`包围,元素间用逗号分隔)以及嵌套的对象和数组。 JSON的优势在于其直观性和通用性。...
首先,JSON数据格式通常以键值对的形式存在,其结构包括对象(大括号{}包围的一组键值对)、数组(方括号[]包围的一组值)以及基本数据类型(如字符串、数字、布尔值和null)。在C++中,为了操作JSON,我们需要一个...
值(value)可以是字符串、数字、布尔值、数组、null或者另一个JSON对象。例如: ```json { "name": "John", "age": 30, "city": "New York" } ``` 2. JSON字符串与JavaScript对象的互换:如上所述,`JSON....
1. **Name-Value 对构成的集合**:这种结构类似于Java中的Map,其中每个Name-Value对由一个键(Key)和一个值(Value)组成,键用引号包围,值可以是各种JSON类型,包括字符串、数字、布尔值、数组、对象或null。...