2017-02-22 6 views
1

PapaParse 라이브러리 (http://papaparse.com/)를 사용하여 JavaScript 개체/JSON을 CSV 파일로 변환하려고합니다. 특히 필자의 경우 각 레코드마다 다른 필드가있을 수 있습니다. 결과 CSV 출력을 주어진 레코드의 모든 필드를 엄밀히 나타내야합니다. 아래의 JSON을 가지고 : -PapaParse "unparse"함수가 다양한 헤더에서 작동 할 수 있습니까?

[ 

{"name":"ken", 
    "age":"35"}, 

{"name":"joe", 
    "age":"37", 
    "shoe_size":"12"}, 

{"name":"fred", 
    "age":"26", 
    "favourite_colour":"blue"} 

] 

당신은 "프레드"는 "shoe_size"을 가진 "favourite_colour"및 "조"가 있음을 볼 수 있습니다, 그리고 그들은 모두 이름과 나이를 가지고있다.

이 여기에 해당 코드를 붙여 넣을 경우 : https://konklone.io/json/

내가 이런 걸 얻을 : -

name age shoe_size favourite_colour 
ken  35  
joe  37 12 
fred 26    blue 

은 기본적으로는 전체 데이터 세트를 분석하고, 존재하는 경우 각각의 헤더를 채 웁니다, 무슨이다 내가 원하는. 나는 PapaParse 기능을 사용하는 경우 : -

Papa.unparse('[{"name":"ken","age":"35"},{"name":"joe","age":"37","shoe_size":"12"},{"name":"fred","age":"26","favourite_colour":"blue"}]',{type:"text/csv;charset=utf-8"}); 

를 내가 얻을 : -

name age 
ken  35 
joe  37 
fred 26 

그래서는 Papa.unparse() 함수 만 먼저 헤더의 메모를 복용 것 같습니다 레코드와 그 이후에 발생하는 레코드를 무시하십시오.

나는 이론에서 나는 첫번째 기록이 빈 경우에도 모든 필드가 확인하여 그것을 꾸며 낼 수 있다는 것을 알고 있지만, 그런 설득하지 않고 이런 식으로 일을 만들 수있는 기능/옵션이 있었는지 궁금?

감사

답변

0

난 당신과 같이 unparse을 명시 적으로 필드를 통과 할 수 있다고 생각 :

var csv = Papa.unparse({ 
fields: ["name", "age", "shoe_size", "favourite_color"], 
data: [ 

{"name":"ken", 
    "age":"35"}, 

{"name":"joe", 
    "age":"37", 
    "shoe_size":"12"}, 

{"name":"fred", 
    "age":"26", 
    "favourite_colour":"blue"} 
    ] 
}); 
+0

그래, 난 그 일 것이라고 생각 - 첫째 물론 필드의 배열을 구축 할 필요가 추가 그래서 단계이지만 너무 번거롭지는 않습니다. 그러나 내 특정 사용 사례 (단 csv로 변환)로 밝혀 졌으므로 PapaParse가 과도하다고 생각하며 필요한 변환을 수행하기 위해 https://github.com/evanplaice/jquery-csv를 사용했습니다. 그러나 PapaParse를 사용하고 양방향 변환이 필요한 경우이 솔루션은 훌륭하다고 생각합니다. – stuffandting