2014-11-14 5 views
0

jquery로 구문 분석되는 HTML 문자열로 자바 스크립트 사전을 변환해야합니다.자바 스크립트 사전 html 데이터 문자열

<div data-options="apple:0,name:'myname'"> 

참고 문자열은 작은 따옴표로 묶어야하며 키가 작은 따옴표 여부에 동봉되어 있는지 여부를 중요하지 않습니다.

제가 생각해 냈습니다. 그러나 이것은 꽤 큰 페이지를 처리하는 데 사용 되었기 때문에, 이렇게하는 것이 더 효율적인 방법이 있는지 궁금 했습니까? 자연스럽게

function dic2str(obj){ 
return JSON.stringify(obj).replace(/"/g,"'").slice(1,-1) 
} 

dic2str({"apple":0,'name':"myname"}) 
+2

이 유효 JSON에 가서 대신 HTML에 작은 따옴표를 사용하기 쉽게하지 않을까요? – adeneo

+0

라이브 DOM에 따옴표가 포함 된 특성을 설정하는 데 문제가 있다고 생각하지 않습니까? 어떤 것이든지 html을 다시 직렬화하면 그냥 그것들을 벗어나야 할 것입니다 .. – lossleader

+0

'urlencode' 그냥'JSON.stringify (obj)'다음의 문자열, 아니면 jQuery를 사용하여'data' 요소로 객체를 추가 하시겠습니까? – skobaljic

답변

0

시험 :

var json = {apple:0,name:'myname'}; 

var obj = {x: 5, y: 6}; 
var objToText = JSON.stringify(json); 

var text = '{"x": 5, "y": 6}'; 
var text2 = '{"apple":0,"name":"myname"}'; 
var textToObj = JSON.parse(text2); 

이제 응용 프로그램 :

var data = document.getElementsByTagName('div')[0].getAttribute('data-options'); 

//this  
var createJSON = "'{"+'"'+data.replace(/[:]/g,'":').replace(/,/g,',"').replace(/'/g,'"')+"}'"; 
var cJSONstring = createJSON.toString().slice(1,-1); 
//or this 
var createJSON2 = "{"+'"'+data.replace(/[:]/g,'":').replace(/,/g,',"').replace(/'/g,'"')+"}"; 

var dataToObj = JSON.parse(cJSONstring); 
var dataToText = JSON.stringify(dataToObj); 

console.log(dataToText);