Javascript忽略多维关联数组键/值-这里有什么问题
Javascript ignores multi-dimensional associative array keys/values - whats wrong here?
这里有什么问题?
第一个例子:
console.log(ntags);
console.log(JSON.stringify(ntags));
控制台输出(Google Chrome):
[Array[0], Array[0]]
0: Array[0]
length: 0
numerical_value: null
tag_id: "3"
1: Array[0]
length: 0
numerical_value: "12"
tag_id: "5"
[[],[]]
显然,变量"ntags"由一定数量的具有特定值的关联数组填充。然而,JSON.stringify生成一个空数组。
第二个例子-如果我试图直接用Ajax发布变量ntags,也会出现同样的问题:
$.ajax({ type:"POST", url: "/?tag_connection=update&fdata_id="+save_id, data: {cons: ntags}, success: function(result){
...
});
客户端不会向服务器端发送任何post数据(PHP中$_post为空)。
JSON串行化不会串行化Array
的属性,这根本不是预期的行为-数组是按顺序排列的值列表。它的属性不会被串行化,因为这不是预期的行为。从技术上讲,您可以将其串行化,但这会破坏将数组作为数据类型的重要性。
例如,假设我们串行化数组[1,2,3,4]
,那么JSON中的预期输出是:
[1,2,3,4]
只是因为它是类型。如果数组像对象一样串行化,那么输出可能看起来像这样:
{0:1,1:2,2:3,4:4,length:4}
正如你所看到的,这要长得多——这意味着你需要通过网络发送更多的数据,以及用任何其他编程语言创建的自定义对象。通过这种方式,我们都同意数组。
因此,在这种情况下,您可能只想使用一个对象,它将输出期望的值。尝试串行化这个:
[{length:0,numerical_value: null, tag_id: 3}, {length: 0, numerical_value: null, tag_id:2}]
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- 可以在这里为背景图像设置滤镜吗
- JavaScript异步问题
- jQuery 手风琴问题在这里
- 不知道如何问这个问题,但他们在这里想做什么
- on() 和 off(),on() 立即触发,但我希望它像绑定或生活一样“行动”,这里有什么问题
- Javascript忽略多维关联数组键/值-这里有什么问题
- jQuery:这里出了什么问题
- 我是否错误地使用了eq(…)?或者这里出了什么问题
- 这里出了什么问题?复选框不起作用
- 我正在尝试从mysql向node.js获取数据,问题就在这里
- 这里的逻辑有什么问题