I가 다음 텍스트 개체 :JSON 텍스트 배열을 JavaScript 배열로 변환하려면 어떻게해야합니까?
[{message="Hello World"}]
이 어떻게 자바 스크립트 배열이 변환 할 수 있습니다 ?
I가 다음 텍스트 개체 :JSON 텍스트 배열을 JavaScript 배열로 변환하려면 어떻게해야합니까?
[{message="Hello World"}]
이 어떻게 자바 스크립트 배열이 변환 할 수 있습니다 ?
을 :
으로 바꿀 수 있으며 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하고있는 것을 알고 있는지 확인하십시오.
그게 JSON입니다. 당신이 jQuery를 사용하는 경우, 다음
var arr = jQuery.parseJSON('[{message="Hello World"}]');
alert(arr[0].message);
훨씬 적은 '안전한'방법은
var arr = eval('[{message="Hello World"}]');
을 인 후 JQuery와 버전과 동일합니다, 언.
그러나 올바른 유효한 json이 되려면 아마도 [{message:"Hello World"}]
이어야합니다.
이 유효 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+")");
그러나 권장하지는 않습니다.
예, 질문을 편집하여 HTML이 아닌 JSON 만 편집했습니다. 귀하의 솔루션은 완벽하게 작동했습니다. 고맙습니다. –