我对界面世界有点新意,我发现JSON非常棒,简单易用。 但是使用JS处理它是痛苦的!没有简单而直接的方法来推送值,检查它是否存在,搜索,......什么都没有!
我不能简单地将一个值添加到json数组中,我有这个:
loadedRecords = {}
我想这样做:
loadedRecords.push('654654')
loadedRecords.push('11')
loadedRecords.push('3333')
为什么这么难??? !!!
答案 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' ];