2011-08-12 3 views
1

문자열을 객체로 변환 해 봅니다. 내가 사용div 속성에서 문자열을 객체로 변환하는 방법

var ec = $(".selector").attr('build'); // this return {abc:'one', bcm:'two', etc...} 
var et = ec.abc // this return me undefined 

내가이를 변환 할 수있는 방법이 방법

var et = new Object(ec); 
var t = et.abc // this return undefined 

를 시도? 이

var ec = $(".selector").attr('build');

반환이

// this return {abc:'one', bcm:'two', etc...} 

그때 이미 객체가있는 경우

+1

아마 돌아가서 이전 질문 중 일부를 대답으로 표시하는 것이 상처를주지 않을 것입니다. 사람들을 도와주기 쉽습니다. –

답변

0

. 그 속성이 단지 JSON 오브젝트의 형식으로 일어나는 string 포함되어있는 경우

+0

예. 그렇지만 ec.abc에 액세스 할 수 없습니다. 하나를 다시 시도하십시오. – wyknzo

+0

@slandau의 답변보기. –

5

, 당신은 당신이 JSON과 함께 작업 할 수있는 방법에의 요소에 액세스 할 수 있도록 string 첫째을 구문 분석 할 필요가 :

var ec = $(".selector").attr('build'); 
var myObject = JSON.parse(ec); 
var et = myObject.abc; 

물론 항상 string 주위에 유효성 검사를 추가하여 항상 해당 형식으로 유지되는지 확인해야합니다. 그렇지 않으면 그러한 종류의 가정을 작성하여 문제가 발생할 수 있습니다.

또한 HTML 속성에 Json 문자열을 저장하는 이유가 있습니까?

0

JSON 구문 분석기를 사용하여 문자열을 구문 분석해야합니다. 문자열을 Object 생성자에 전달할 수 없습니다.

1

사용 $.parse() 방법 대신에, 당신은 단지 문자열을 객체를 저장할 수 있도록합니다 data() 방법을 사용하여 시도 attr()를 사용

var et= $.parse($(".selector").attr('build')); 
var t = et.abc 
0

.

당신이 당신의 객체를 저장할 때 다음 구문을 사용합니다 : 당신이 attr()를 사용하는 경우, 당신은 것입니다, 그렇지 않으면

var d = $(".selector").data('build'); 
//access properties 
var x = d.abc; 

: 당신이 당신의 목적, 사용을 검색 할 때, 그리고

var d = {abc:'one', bcm:'two'}; 
$(".selector").data('build', d); 

을 결과를 객체로 구문 분석해야합니다.이 객체는 parseJSON을 사용할 수 있습니다.

관련 문제