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

JSON的key值为数字时如何使用

阅读更多
        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名称不符合合法变量名的标准之外,似乎并没有其它损失;
分享到:
评论
1 楼 wuzhihui001 2012-08-27  
谢谢,正好用到了这种情况, 用id做key  非常感谢你的这个文章

相关推荐

    C#实现json格式转换成对象并更换key的方法

    在这个示例中,我们首先使用`JavaScriptSerializer`将JSON字符串转换为`Dictionary, object&gt;`,然后遍历这个字典,对每个键执行转换操作,并将转换后的键和对应的值放入新的字典`resultDict`中。`ConvertKey`方法...

    Java中使用Json

    JSON数据通常包含键值对,键是字符串,值可以是多种数据类型,如字符串、数字、布尔值、数组或嵌套的JSON对象。在Java中,我们可以使用`JSONObject`和`JSONArray`(来自org.json库)来操作JSON数据。例如: ```...

    json的键名为数字时的调用方式(示例代码).docx

    本篇文章将深入探讨JSON键为数字时的调用方式,并通过示例代码进行演示。 在PHP中,当键是数字时,它会被自动视为数组索引。例如: ```php $array = array('result' =&gt; array("90" =&gt; "90 队列", "status" =&gt; ...

    拷贝JSON对象值进Java Bean对象

    在Java编程中,将JSON对象转换为Java Bean对象是一个常见的任务,特别是在处理Web服务或API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而Java Bean是符合特定规范的Java类,通常用于...

    从格式不确定的json中读取键值对

    在处理JSON数据时,我们经常会遇到格式不一致的情况,这主要源于JSON的灵活性,它可以包含对象、数组、字符串、数字、布尔值以及null等多种数据类型。对于格式不确定的JSON字符串,Java提供了多种库来帮助我们解析,...

    json字符串递归解析

    JSON格式通常由键值对组成,键用引号括起来,值可以是字符串、数字、布尔值、数组、null或另一个JSON对象。 在处理JSON数据时,我们经常需要对JSON字符串进行解析,将其转化为JavaScript对象以便进一步操作。当JSON...

    json系列文章——json的使用

    键用双引号 `"key"` 指定,值可以是字符串、数字、布尔值、数组、null 或其他JSON对象。例如: ```json { "name": "张三", "age": 30, "isStudent": false } ``` 2. JSON数据类型 - 字符串:用双引号包围的...

    Gson解析JSON中动态未知key的例程源码

    JSON数据由键值对组成,键(key)是字符串,值(value)可以是多种数据类型,包括字符串、数字、布尔值、数组、对象等。动态未知key意味着JSON对象的键在编写代码时未知,可能在运行时由用户输入或者其他方式动态...

    JSON对比工具介绍(含单元测试对比,接口API响应对比【忽略指定噪声字段key】)

    2,对于API响应JSON数据,需要对比时使用文档中第二个工具集,可以指定忽略噪声字段,比较强大。 不废话:https://github.com/kvnxiao/jsonequals 使用至今,发现对JsonArray的顺序是必须判断的,需要自定义修改。

    json的键名为数字时的调用方式(示例代码)

    因此,访问键为 "90" 的值时,仍然使用数组方式 `data1[90]`,而对于非数字的键,可以使用点号 `data1.status` 或者数组方式 `data1['status']` 访问。 总结来说,当 JSON 键名是数字时,无论在 PHP 还是在 ...

    JSON_Trans.rar_LABVIEW转换JSON_json Labview_labivew json_labview j

    它主要由键值对(key-value pairs)组成,键用引号包围,值可以是字符串、数字、布尔值、数组、null或其他JSON对象。 2. **LabVIEW中的JSON支持**:从LabVIEW 2013版本开始,内置了对JSON的支持。提供了JSON解析器...

    json2 脚本 使用说明

    - **键值对**:JSON数据以键值对的形式存储,键是字符串,值可以是多种类型(字符串、数字、布尔值、数组、对象、null)。 - **数据格式**:JSON数据格式必须遵循严格的规则,如键必须用双引号包围,字符串同样如此...

    json.zip_JSON_Json::Value_c++ Key Value_jsoncpp

    `asInt()`函数用于将`Json::Value`对象转换为整型值,这样我们就可以读取并使用"key"对应的数值了。 关于C++中的键值对操作,`Json::Value`提供了灵活的方式来访问和修改JSON对象的属性。键可以是字符串,而值可以...

    json-c-master.zip_JSON_c json_json c_json-c master

    1. **灵活的数据模型**:JSON-C的核心是一个动态类型系统,它可以表示JSON的所有数据类型,包括对象(键值对)、数组、字符串、数字、布尔值和null。这种灵活性使得在C语言中处理JSON数据无需预先定义复杂的结构。 ...

    json_decode 索引为数字时自动排序问题解决方法

    总的来说,当使用`json_encode`处理包含数字键的数组时,如果希望保持原始顺序,可以考虑将数字键转换为字符串。在本案例中,添加前导空格是一种可行的解决方案,但也可以根据实际需求选择其他方法,如使用以字母或...

    JSON入门--WORD文档

    JSON支持的值类型有字符串(用双引号包围)、数字(整数或浮点数)、布尔值(`true`或`false`)、null、数组(用方括号`[]`包围,元素间用逗号分隔)以及嵌套的对象和数组。 JSON的优势在于其直观性和通用性。...

    json.zip_C++_JSON_json 类_json 结构体

    首先,JSON数据格式通常以键值对的形式存在,其结构包括对象(大括号{}包围的一组键值对)、数组(方括号[]包围的一组值)以及基本数据类型(如字符串、数字、布尔值和null)。在C++中,为了操作JSON,我们需要一个...

    json使用例子

    值(value)可以是字符串、数字、布尔值、数组、null或者另一个JSON对象。例如: ```json { "name": "John", "age": 30, "city": "New York" } ``` 2. JSON字符串与JavaScript对象的互换:如上所述,`JSON....

    JSON 的使用说明

    1. **Name-Value 对构成的集合**:这种结构类似于Java中的Map,其中每个Name-Value对由一个键(Key)和一个值(Value)组成,键用引号包围,值可以是各种JSON类型,包括字符串、数字、布尔值、数组、对象或null。...

Global site tag (gtag.js) - Google Analytics