2016-10-25 8 views
0

내 데이터는 구글 스프레드 시트 형식을 다음에 오는 :개체 데이터를 json 형식으로 변환하여 jqplot이 차트를 생성 할 수 있도록하는 방법은 무엇입니까?

Object {reporttime: "04-09-2016 0:00", msisdn: "9987579170", city: "NOIDA", product: "Advantage3000", ceiindex: "85"…} 

내가 JSON 형식으로 위의 데이터를 변환 할, 예컨대을 :

[[ 
    ['reporttime', "04-09-2016 0:00"],['msisdn', "9987579170"], ['city', 'NOIDA'],  
    ['product', 'Advantage3000'] 
  ]] 

내가 jqplot를 사용하여 차트를 만들려고하고 있습니다. ERROR : 데이터가 지정되지 않았습니다.

+0

샘플은 "JSON 형식", JSON 유효하지 않습니다. Object.keys()와 .map()을 사용하면 쉽게 변환 할 수 있습니다. 단, 객체 키의 순서는 보장되지 않습니다. – nnnnnn

답변

-1
var responseArr = []; 
for (var x in DataObj) { 
    var initArr = []; 
    initArr.push(x); 
    initArr.push(DataObj[x]); 
    responseArr.push(initArr); 
}; 

이 출력은 원하는 배열 형식을 얻기 위해 다른 배열로 푸시 할 수 있습니다. 입력 개체를 for 루프에 전달합니다.

1

입력을 다음과 같이 출력 변환하는 매퍼 함수가 있어야합니다.

업데이트 된 필드 만 출력되도록 업데이트되었습니다. 어떤 경우에 나는 당신이 실제로 원하는 것은 객체 (배열의 배열),하지 JSON 상상하지만

var input = { 
 
    reporttime: "04-09-2016 0:00", 
 
    msisdn: "9987579170", 
 
    city: "NOIDA", 
 
    product: "Advantage3000", 
 
    ceiindex: "85", 
 
    product: 'Advantage3000' 
 
}; 
 

 
function mapper(input, requiredKeys) { 
 
    var output = Object.keys(input).map(function(key) { 
 
    if (input.hasOwnProperty(key) && requiredKeys.includes(key)) { 
 
     return [key, input[key]]; 
 
    } 
 
    }).filter(function(value) { 
 
    return value !== undefined; 
 
    }); 
 

 
    console.log(output); 
 
} 
 
var requiredKeys = ["city", "product", "reporttime"]; 
 
mapper(input, requiredKeys);

+0

나는 이것을 위에서 제안했지만, OP의 샘플 출력에는 모든 입력 속성이 포함되어 있지 않다는 점에 유의하십시오. (의도적으로 그 일을했는지 ​​확실하지 않은 경우 ...) – nnnnnn

+0

선택한 필드를 가져 오는 방법을 수정했습니다. – Sreekanth

+0

이 코드는 Object {reporttime : "04-09-2016 0:00", msisdn : "9986983200" , 도시 : "NOIDA", 제품 : "Advantage3000", ceiindex : "56"...} – user3070796