2017-09-26 2 views
-1

javascript 배열로 아약스 json 응답을 변환하고 싶습니다. 어떻게 할 수 있는지 잘 모르겠습니다. 나는 찢어 봤지만 그것이 내가 원하는 것이 아니다. 제발 도와주세요!배열에 대한 Json의 응답

내 AJAX JSON 응답 (이 하나 개의 문자열에) : 배열에 밀어 후

Array[Date:"[['2016-09-09',162], ['2016-12-04',145], ['2017-01-11',130]]"] 

내 욕망 결과 :

var array = [['2016-09-09',162], ['2016-12-04',145], ['2017-01-11',130]]; 
+0

'배열 사용하여 변환 할 수 있습니다 [날짜 : "..."]'...이 무엇입니까?! – deceze

+0

리터럴 문자열 응답을받는 것을 이해한다면? 즉 : "배열 [날짜 :"[[ '2016-09-09', 162], [ '2016-12-04', 145], [ '2017-01-11', 130]]]] " –

+0

당신은 AJAX 응답은 JSON이 아닙니다. –

답변

1

사용 정규식은 문자열에서 데이터를 추출합니다.

var str = `Array[Date:"[['2016-09-09',162], ['2016-12-04',145], ['2017-01-11',130]]"]`; 
 

 
// regex for your string pattern 
 
var re = /\[\s?'(\d{4}-\d{1,2}-\d{1,2})'\s?,\s?(\d+)\s?\]/g; 
 
// array for result 
 
var res = [], 
 
    // variable for caching match 
 
    m; 
 

 
// iterate over the matches 
 
while (m = re.exec(str)) { 
 
    //push values into array 
 
    res.push([m[1], +m[2]]); // use + prefix to convert into number 
 
} 
 

 
console.log(res);

Regex explanation here


참고 :이 (가 모든 프로그래밍 언어로 구현하기 쉽게 유효한 JSON 문자열을 생성하는 서버 측 코드를 업데이트 좋을 것이다 , 그것에 대한 미리 정의 된 함수 또는 라이브러리가있을 것입니다).

+1

쿨! 그것은 효과가있다! 감사!! – lel

+0

@lel : 기꺼이 도와 드리겠습니다. –

+0

안녕하세요 @Pranav C Balan [2016-09-09, 162] 백 넘버에 소수점이있는 경우 '[2016-09-09], 1.62 ] 또는 [ '2016-09-09', 16.2] 어떻게 일치시켜야 regax를 바꿀 수 있습니까? – lel

-1

Ajax 응답이 문자열 인 경우, 당신은 JSON.parse(strSesponse)

+0

아니요 문자열이 아니며 목록입니다. – lel

관련 문제