2011-08-17 8 views

답변

3

:으로 바꿀 수 있으며 JSON.parse를 사용할 수 있습니다. 그런 다음 " 님의 메시지로 묶어야합니다. 당신은 동일한 기능을 수행 할 eval을 사용할 수 있습니다

var message = '[{message="Hello World"}]' 
message = message.replace('message', '"message"').replace('=',':') 
JSON.parse(message) 

:

// still gotta replace the '=' 
eval('[{message="Hello World"}]'.replace("=",":")) 

을하지만 다른 문제가 eval 있습니다

// error = not : 
JSON.parse('[{message="Hello World"}]') 

// errors = message not "message" 
JSON.parse('[{message="Hello World"}]'.replace('=',':')) 

이 시도

eval('window.alert("eval is evil")') 

그래서 조심. 당신이 eval'ing하고있는 것을 알고 있는지 확인하십시오.

2

그게 JSON입니다. 당신이 jQuery를 사용하는 경우, 다음

var arr = jQuery.parseJSON('[{message="Hello World"}]'); 
alert(arr[0].message); 

훨씬 적은 '안전한'방법은

var arr = eval('[{message="Hello World"}]'); 

을 인 후 JQuery와 버전과 동일합니다, 언.

그러나 올바른 유효한 json이 되려면 아마도 [{message:"Hello World"}]이어야합니다.

+0

예, 질문을 편집하여 HTML이 아닌 JSON 만 편집했습니다. 귀하의 솔루션은 완벽하게 작동했습니다. 고맙습니다. –

1

이 유효 JSON는 아니지만, 당신은 JSON.parse를 사용하여 변환 한 후, : 모든 =을 대체 키에 따옴표를 추가하고 수 : 지원되지 않습니다

//text = '[{message="Hello World"}]' 
text = text.replace(/(\w+)\s*=/g, "\"$1\":"); 
var array = JSON.parse(text); 

JSON.parse 경우 eval을 사용할 수

//text = '[{message="Hello World"}]' 
text = text.replace(/(\w+)\s*=/g, "\"$1\":"); 
var array = eval("("+text+")"); 

그러나 권장하지는 않습니다.

관련 문제