0

我正在使用三星 Tizen SDK 进行 SmartTV 应用程序开发。我有一些将 CSV 转换为 Javascript 对象的代码。我在访问从代码创建的对象中的一个键时遇到问题。

代码:

function csvJSON(csv) {

var lines = csv.split("\n");

var result = [];

var headers = lines[0].split(",");

for (var i = 1; i < lines.length; i++) {


    var obj = {startTime:'',
            endTime:'',
            day:''};

    var currentline = lines[i].split(",");

    for (var j = 0; j < headers.length; j++) {
        obj[headers[j]] = currentline[j];
    }

    result.push(obj);

}

return result; // JavaScript object

}

我对该函数的输入如下所示: 函数输入

在控制台开发人员模式下调试返回结果行时(我设置了 obj.endTime 的本地监视),我无法访问 endTime 键,尽管它显示在调试器中。就好像一个特殊字符以某种方式被牵扯进来。

结束时间键

我在 jsFiddle 中尝试了相同的代码片段并且它有效......所以它似乎与在 Tizen 模拟器上运行的 Javascript/ECMAScript 版本有关。也许这是早期版本的 Javascript 中的一个问题?

谢谢!

4

1 回答 1

0

我会检查endTime你的 csv 标题是否真的等于endtime,即

endTime1 = 'endTime'
endTime2 = '\uff45ndTime'
console.log(`${endTime1} equals ${endTime2} is ${endTime1 === endTime2}`)
// endTime equals endTime is false

obj = {}
obj[endTime1] = 'endTime1'
obj[endTime2] = 'endTime2'
console.log(obj)
// {
//   "endTime": "endTime1",
//   "endTime": "endTime2"
// }

您为什么不为此使用库的任何原因?例如 http://papaparse.com/docs#csv-to-json

于 2017-03-20T08:52:23.623 回答