JavaScript中的键值数据结构

时间:2011-09-08 11:07:28

标签: javascript

我有一个谷歌地图,用户在不同位置放置标记。我在点击事件上显示一个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是键,表单元素是值,我需要一种方法来转换服务器可解析的格式的所有值(通过隐藏字段)和反之亦然。

2 个答案:

答案 0 :(得分:1)

怎么样:

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

或者只是:

var keyValuePairs = {};
keyValuePairs["key1"] = "value1";
keyValueParis["keyN"] = "value2";
alert(keyValuePairs["key1"]);

<强>更新 如果你想在隐藏字段中将这个关联数组作为JSON发布,只需 stringify 使用你选择的JSON库的数组,并将JSON文本设置为整个隐藏字段。

答案 1 :(得分:0)

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

定义变量

var userInput = {}

对于指定markerId的给定formElements,只需执行

userInput[markerId] = formElements

就像你在编写代码时有一个具体的ID(比如说Id1)并编写

一样
userInput.Id1 = formElements

所以在那之后你有userInput对象,其属性名称等于你的id(键),并且值等于用户定义的表单元素 - 正是你需要的,对吗?