JavaScript中的键值数据结构

JavaScript中的键值数据结构,javascript,Javascript,我有一个谷歌地图,用户可以在不同的位置放置标记。我在click事件上显示了一个jquery对话框,它有一个表单,用户将在其中填写与标记相关的其他详细信息。 现在,我需要将这些数据持久化: 1] 我需要将标记(以及详细信息)存储到表单的隐藏字段中,以便我的服务器可以解析它并填充数据库。关于以下几点: markerData = JSON.stringify($('#dialog' + markerId).serializeObject()); // the form .. add the marke

我有一个谷歌地图,用户可以在不同的位置放置标记。我在click事件上显示了一个jquery对话框,它有一个表单,用户将在其中填写与标记相关的其他详细信息。 现在,我需要将这些数据持久化:

1] 我需要将标记(以及详细信息)存储到表单的隐藏字段中,以便我的服务器可以解析它并填充数据库。关于以下几点:

markerData = JSON.stringify($('#dialog' + markerId).serializeObject()); // the form
.. add the markerData with key as markerId to a global javascript variable ..
$('#markersList').val( JSON.stringify("the global var"));
注:
$(“#dialog”+markerId)
将唯一标识标记对话框(其形式为)

2] 我需要从数据库中检索这些值,并形成将被放置在隐藏字段中的字符串。这是编辑/查看页面所必需的

基本上,我需要javascript中的数据结构(键/值),其中markerId是键,form元素是值,我需要一种方法将所有值转换为可由服务器解析的格式(通过隐藏字段),反之亦然。

如何:

var keyValuePairs = [{ "key1": "value1" }, { "keyN": "valueN" }];
alert(keyValuePairs["key1"]);
或者只是:

var keyValuePairs = {};
keyValuePairs["key1"] = "value1";
keyValueParis["keyN"] = "value2";
alert(keyValuePairs["key1"]);
更新:
如果要将此关联数组作为JSON发布到隐藏字段中,只需使用您选择的JSON库对数组进行字符串化,并将JSON文本设置为整个隐藏字段。

javascript中的所有对象都是键/值对。你还需要什么?你可以这样做:

定义一个变量

var userInput = {}
一旦为给定的
markerId
指定了
formElements
,只需执行

userInput[markerId] = formElements
这与您在编写代码(比如说
Id1
)和编写代码时有一个具体的Id是一样的

userInput.Id1 = formElements

因此,在这之后,您就拥有了
userInput
对象,该对象的属性名等于您的ID(键),值等于用户定义的表单元素-这正是您所需要的,对吗?

请不要对关联数组使用
new Array()
,而应该使用
{}
。@Shurdoof,有什么原因吗?或者这只是你的意见…?谢谢Matias,但是我需要将所有值(“value1”、“valueN”)以某种方式存储在一个隐藏字段中,以便我可以在服务器端解析它并填充数据库。(我使用的是php)所以只要在数据或控件在UI中更改其值或选项时使用JSON库“stringify”您的关联数组就可以了。或者更好的版本:在将页面发回服务器之前,stringify您的关联数组,并将其设置为整个隐藏字段。