2014-12-17 6 views
0

json 개체에 문자열 var을 구문 분석하고 싶지만 항상 json이 아닙니다. json이 아닌 경우에는 json으로 반환해야합니다. 나는 JSON.parse를 시도했으나 var가 순수한 문자열 일 때 오류를 게시하고 마침내 JSON.parse (JSON.stringify (var))를 얻었습니다. JSON에 구문 분석 할 수있는 문자열을 판단 할 수있는 방법이 있는지 궁금합니다. 아니, 그래서 나는 "stingify"단계를 저장할 수 있습니다.문자열을 json으로 구문 분석 문자열을 섞음으로

+0

"시도/캐치"를 시도 했습니까? – Adem

+0

문자열이 JSON이 아닌 일반적인 형식을 알고 있습니까? JSON.parse 단계를 절대적으로 피해야하는 경우 먼저 문자열이 JSON이 아닌 형식인지 확인하기 위해 경험적 방법을 시도해 볼 수 있습니다. –

답변

0

실제로 파싱 경우의 유효 여부를 아는 것보다 더 좋은 방법은 없습니다가 아닌 것을 의미한다. try/catch 블록을 사용하여 변수를 설정 한 다음이를 리턴 할 수 있습니다.

function toJSON(str) { 
    var rtn; 
    try { rtn = JSON.parse(str); } // try to set it 
    catch (e) { rtn = str; } // if error set it to str 
    return rtn; // finally return 
} 
+0

'catch {rtn = str; }'이것은 올바른 신텍스가 아닙니다 – Girish

+0

@ Girish 예. 감사합니다 –

+0

다시'rtn = e.toString(); 예외가 발생했습니다.보다 의미가 있습니다. – Girish

0

try/catch를 사용할 수 있습니다. 당신이 그것을 구문 분석하려고 할 때 예외가 발생하는 경우, 그것은 유효한 JSON

var victim=....; 
var output; 
try { 
    output = JSON.parse(victim); 
} catch (e) { 
    output = victim; 
}