用于php的Javascript数组序列化函数

Javascript array serialize function for use in php

本文关键字:序列化 函数 数组 Javascript php 用于      更新时间:2023-09-26

我有一个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'
   }
};

感谢您的帮助。谢谢

您似乎正在重新发明JSON轮子。这个怎么样:

function js_array_serialize(a) {
    return JSON.stringify(a);
}

JSON.stringify功能是本机内置的现代浏览器。如果您想支持传统浏览器,只需在页面中包含json2.js脚本即可。

永远不要使用字符串串联来构建JSON。还有更多的情况需要处理:比如正确地转义值。例如,如果值包含引号?它将破坏您的序列化算法。