如何将单个值添加到JSON数组?

时间:2011-06-30 16:46:30

标签: javascript json

我对界面世界有点新意,我发现JSON非常棒,简单易用。 但是使用JS处理它是痛苦的!没有简单而直接的方法来推送值,检查它是否存在,搜索,......什么都没有!

我不能简单地将一个值添加到json数组中,我有这个:

loadedRecords = {}

我想这样做:

loadedRecords.push('654654')
loadedRecords.push('11')
loadedRecords.push('3333')

为什么这么难??? !!!

7 个答案:

答案 0 :(得分:6)

因为那是一个对象,而不是一个数组。

你想要这个:

var = loadedRecords = []
loadedRecords.push('1234');

现在谈谈你在JS中的JSON:

  

没有简单直接的推送方式

JSON是一种数据交换格式,如果要更改数据,那么您将处理本机JS对象和数组。原生JS对象有各种方法来推动价值观和操纵自己。

  

检查它是否存在

这很容易。 if (data.someKey) { doStuff() }将检查是否存在密钥。

  

搜索

JSON再次解码为数组和对象,因此您可以使用任何数据结构遍历树并查找可能的内容。

  

没有

一切。 JSON只是转换为您使用的任何语言的本机数据结构。在一天结束时,你有对象(或哈希/ disctionaries),以及包含数字字符串和布尔值的数组。这种简单性是JSON很棒的原因。您寻求的“功能”不是JSON的一部分。它们是您用来解析JSON的语言的一部分。

答案 1 :(得分:3)

.push是一个数组函数。

如果需要,可以向ur对象添加数组:

loadedRecords = { recs: [] };

loadedRecords.recs.push('654654');
loadedRecords.recs.push('11');
loadedRecords.recs.push('3333');

这将导致:

loadedRecords = { recs: ['654654', '11', '3333'] };

答案 2 :(得分:1)

{}不是数组是对象文字,而是使用loadedRecords = [];

答案 3 :(得分:1)

如果要推送到数组,则需要创建数组,而不是对象。尝试:

loadedRecords = [] //note... square brackets
loadedRecords.push('654654')
loadedRecords.push('11')
loadedRecords.push('3333')

答案 4 :(得分:1)

您只能将事物推送到数组,而不是JSON对象。数组用方括号括起来:

var test = ['i','am','an','array'];

您要做的是使用 setters 向对象添加新项目:

var test = { };
test.sample = 'asdf';
test.value = 1245;

现在,如果您使用FireBug之类的工具来检查此对象,您可以看到它:

test {
    sample = 'asdf,
    value = 1245
}

答案 5 :(得分:1)

在JS中为JSON格式推送变量的简单方法

var city="Mangalore";
var username="somename"

var dataVar = {"user": 0,
                "location": {
                    "state": "Karnataka",
                    "country": "India",  
                },
            }

            if (city) {
                dataVar['location']['city'] = city;
            }
            if (username) {
                dataVar['username'] = username;
            }

答案 6 :(得分:0)

错误:

var loadedRecords = [ '654654', '11', '333' ];