-1

我在网上搜索了很多,但没有找到任何东西。这里的问题似乎主要针对 php,所以希望有人可以帮助我使用 javascript。

基本上我正在读取一个文本文件并将每一行转换为一个 JSON 对象。我使用 .split() 将行转换为数组。但是,当我这样做时,数组会将各个字符串括在单引号中。当我打印结果对象时,它也有单引号中的值。但是我需要它们在 JSON 的双引号中。这可能是一个非常愚蠢的问题,或者根本不是问题,但我不知道该怎么做。我的代码和终端输出如下。

先感谢您!!

lineReader.open('test.txt', function(reader){
    num=0;
    while (reader.hasNextLine()){
        reader.nextLine(function(line){
            //console.log(line);
            line = line.toLowerCase();
            lineArr = line.split('","');
            //console.log(lineArr);

            var last = lineArr.length - 1;
            lineArr[0] = lineArr[0].slice(1);
            lineArr[last] = lineArr[last].replace('"\r', '');
            if (lineArr[last].slice(-1) === '"'){
                lineArr[last] = lineArr[last].replace('"', '');
            };
            //console.log(lineArr);
            if(lineArr[0] === 'Name'){
                biz['Columns'] = lineArr;
            } else{
                var id = 'biz-' + num
                biz[id] = {
                    "value": {
                        "name": lineArr[0],
                        "address": lineArr[1],
                        "city": lineArr[2],
                        "province": lineArr[3],
                        "postal": lineArr[4]                    }
                };
            };
        });
        num++;
    }
    console.log(biz);
});

Output:

{ 'biz-0': 
   { value: 
      { name: 'name',
        address: 'address',
        city: 'city',
        province: 'province',
        postal: 'postal code' } } }
4

1 回答 1

0

我建议不要尝试构建自己的解析器...使用JSON.parse()和/或JSON.stringify();代替。如果您需要支持较旧的 IE 版本(或被迫以怪癖模式呈现)...包括 Crockford 的json2.js https://github.com/douglascrockford/JSON-js

于 2013-11-14T02:55:58.583 回答