我有这个javascript函数,它将javascript数组转换为序列化字符串,以便在php中用作数组。
function js_array_serialize(a) {
var a_php = "";
var total = 0;
for (var key in a) {
++ total;
a_php = a_php + "s:" +
String(key).length + ":\"" + String(key) + "\";s:" +
String(a[key]).length + ":\"" + String(a[key]) + "\";";
}
a_php = "a:" + total + ":{" + a_php + "}";
return a_php;
}
上面的函数用于关联数组。但我有一个多维数组,必须在for循环中完成一些事情,我可以想到另一个嵌套循环。
我的javascript数组具有以下结构:
var a = {
'index': {
'subindex1': 'default',
'subindex2': 'default'
},
'index2': {
'subindex1': 'default',
'subindex2': 'default'
}
};
感谢任何帮助。 谢谢!
答案 0 :(得分:1)
您似乎正在重塑JSON轮。怎么样:
function js_array_serialize(a) {
return JSON.stringify(a);
}
JSON.stringify
功能是本机内置的现代浏览器。如果您想支持旧版浏览器,只需在页面中加入json2.js脚本即可。
永远不要使用字符串连接来构建JSON。您需要处理更多的案例:正确转义值。例如,如果值包含引号?它会破坏你的序列化算法。