如何操纵文本使其成为JSON?

时间:2014-11-26 23:19:30

标签: javascript json text filtering

Noob问题;

请帮帮我..我只是一个初学者,我发现很难做到以下几点:

我想使用Javascript操作此文本,使其外观不同:

"5555 55:55: John: New York
 6666 66:66: Jack: Los Angeles"

在我想要的操作之后:

[{ name:"John", address:"New York", number:"5555 55:55"},{ name:"Jack", address:"Los Angeles", number:"6666 66:66"}]

所以我真的想知道如何告诉Javascript这是一个新行,这意味着一个新值..这里是一个xxxx:这是一个名字..这里是一个xxxx :(空格),之后是地址..

我不知道这是否可能,但你的帮助真的非常感激。先谢谢你了

更新

文字是:

var text = "5555 55:55: John: New York \n 6666 66:66: Jack: Los \n Angeles 7777 77:77: Smith: South Park: 3321"

到目前为止我的代码:

var result = text.match(/\d\d\d\d \d\d:\d\d: [a-zA-Z]+: /g)
                .map(function (x) {
                    x = x.split(': ');
                    return {
                        number: x[0],
                        name: x[1],
                        address: x[2]
                    };
                });

但是我只得到“Los”这个词,因为regEx是错误的并且':'处的拆分不能正常工作,因为地址有时会这样。

1 个答案:

答案 0 :(得分:6)

以下适用于Firefox:

"5555 55:55: John: New York\n 6666 66:66: Jack: Los Angeles"
 .split('\n')
 .map(function(x) {
  x = x.split(': ');
  return {
    number: x[0],
    name: x[1],
    address: x[2]
  };
});

其他版本缺少map,您必须补偿。