2017-03-19 10 views
0

SmartTV 앱 개발을 위해 Samsung Tizen SDK를 사용하고 있습니다. CSV를 Javascript 객체로 변환하는 코드가 있습니다. 코드에서 생성 된 객체의 키 중 하나에 액세스하는 데 문제가 있습니다.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 

}이 함수

내 입력과 같이 : 콘솔 개발자 모드에서 반환 결과 라인을 디버깅하는 동안 Input to function

(I는 로컬 시계를 설정 obj.endTime), 디버거에 나타나도 endTime 키에 액세스 할 수 없습니다. 마치 특수 문자가 어떻게 든 관련되어있는 것처럼 보입니다.

endTime key

나는 jsFiddle에서 동일한 코드 조각을 시도하고 일했다 ... 그래서는 타 이젠 에뮬레이터에서 실행되는 자바 스크립트/ECMAScript를 버전에 관련된 일처럼 보인다. 아마도 이것은 이전 버전의 Javascript에서 문제였습니까?

감사합니다.

+1

헤더에 인코딩 문제가 있다고 생각하십니까? – qonf

+0

인코딩 문제가 있거나 그럴 수 있다고 말하는 것입니까? – Julian

+0

잘 모르겠습니다. 나는 당신의''endTime '==='endTime''을 점검 할 것입니다. 어쩌면 평등 한 것처럼 보이는 문자가있을 수 있지만 ASCII 문자가 아닌 ASCII 코드가 아닌 문자 일 수 있습니다. 내 머리 꼭대기에 그러한 문자의 한 예가 [NO-BREAK SPACE] (http://www.fileformat.info/info/unicode/char/00a0/index.htm) 또는 [전폭 라틴 소문자 E ] (http://www.fileformat.info/info/unicode/char/ff45/index.htm) – qonf

답변

0

나는 당신의 CSV 헤더에 endTimeendtime 진정으로 같다는 것을 확인 것, 즉

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

+1

나는 결과가 좋은 PapaParse로 전환했다. 고맙습니다! – Julian