Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
像关系SQL数据库(Javascript)一样使用JSon_Javascript_Json - Fatal编程技术网

像关系SQL数据库(Javascript)一样使用JSon

像关系SQL数据库(Javascript)一样使用JSon,javascript,json,Javascript,Json,因此,我有一个JSON变量,如下所示: var peopleList = { "1": {"Name": "Lisa", "item1": "Name of Item 1"} , "2": {"Name": "Marty"} , "3": {"Name": "Jordan", "item1":"Name of Item 1", "item2":"Name of Item 2"} } 我猜这有点像一个关系数据库 基本上,对于我正在尝试的程序范围,我需要能够不断

因此,我有一个JSON变量,如下所示:

var peopleList = {
    "1": {"Name": "Lisa", "item1": "Name of Item 1"}   ,
    "2": {"Name": "Marty"}   ,
    "3": {"Name": "Jordan",  "item1":"Name of Item 1",  "item2":"Name of Item 2"}
}
我猜这有点像一个关系数据库

基本上,对于我正在尝试的程序范围,我需要能够不断添加多个人(此变量中为1-3),然后将多个项目关联到这些人

同样对于现在的变量,我甚至不确定Javascript中的getter和setter是什么

例如,我如何向“Marty”添加项目

我该如何打印出“Jordan”中第2项的名称

谢谢你的帮助。我对JSON还是有点陌生


如果有更好的方法更容易解析,我洗耳恭听。

 peopleList[3].Name // will return Jordan
要向任何对象添加任何键值对,请尝试以下操作

var MartyData = peopleList[2];
MartyData['item1'] = "Name of item 1 of Marty";
// you can check now that data added or not
alert(peopleList[2].item1); // return Name of item1 of marty

JSON对象类似于JavaBean或Map

var peopleList = {
'one':{'name':'Marty','item1':'Name of item1'},
'two':{'name':'Jack','item1':'Name of item1'},
'three':{'name':'Jordan','item1':'Name of item1','item2':'Name of item2'}
}
例如,我如何向“Marty”添加项目

我该如何打印出“Jordan”中第2项的名称

将项目添加到“Marty”

打印出“Jordan”中项目2的名称

=============================================================

对不起,我错了。已编辑。

您的参考资料是什么?Marty或2?@diEcho.peopleList是一个对象,但不是数组。因此OP应该使用peopleList.3.name//将返回Jordan
peopleList
包含单个成员(对象),其中包含一个包含三个对象的数组,可以使用点运算符或下标运算符检索成员。@LiuwkCn点运算符仅适用于有效标识符的属性名称,不能以数字开头。不管数组与否,数值属性都必须通过括号运算符进行检索。好的,我已经更改了答案。谢谢~
peopleList.two.item1 = "Name of item1"
alert(peopleList.three.item2);