1

我想使用 AJAX 加载数据而不将其格式化为 JSON,所以我自己对其进行了编码。

数据是客户记录:井号 ( #) 分隔客户记录,管道符号 ( |) 分隔客户数据的字段,克拉符号 ( ^) 分隔字段名称和该字段的值。

所以,我有这样的东西(简化):

name^James|email^somemail@gmail.com#name^Bary|email^bary@bary.com#...

将此数据加载到 Javascript 中时,我想将其制成二维数组,如下所示:

clients = [
['name'=>'James','email'=>'somemail@gmail.com'],
['name'=>'Bary','email'=>bary@bary.com]
]

...或者是对象格式的东西。如何最好地做到这一点?

4

1 回答 1

0

请注意,您不能在键或值中使用特殊字符(|、^、#)。如果您决定对它们进行编码,那么您可能可以使用 JSON。所以我真的推荐 JSON,所以你不必自己做任何事情。

如果您决定不支持包含 (|,^,#) 的键和值,则可以使用 javascript 拆分功能。像这样的东西(我没有运行它):

var output=[];
var clients = input.split("#");

for (var client in clients)
{
  var outputClient={}
  var clientProps = client.split('|');
  for (var propPair in clientProps)
  {
     var propPairVal = propPair.split('^');
     outputClient[propPairVal[0]] = propPairVal[1];  
  }
  output.push(outputClient);
}

但是,我真的推荐 JSON。它将更加灵活且不易出错。

于 2013-04-17T01:50:51.537 回答