2012-04-13 2 views
0

자바로 중첩 된 객체로 JSON 객체를 생성 중입니다. eval()을 사용하지 않고 Javascript에서이 작업을 수행하는 쉬운 방법이 있습니까?중첩 된 JSON 객체로 JSON 객체를 생성하는 방법

var data_json = "data = {'"+field_name+"':{'answers':{"; 
for(var i=0; i<answers.length; i++){ 
    data_json += "'" + i + "':" + "'" + answers[i] + "',"; 
} 
data_json = data_json.replace(/,$/,""); 
data_json = data_json + "}}}"; 

eval(data_json); 

결과 : data[field_name]["answers"] 단지 숫자 키를 포함하는 경우,이 배열되지 객체되어야

data={'myfield':{'answers':{'0':'The answer', '1':'Another answer'}}}; 
측면 참고로
+0

을 JSON.parse을 사용할 수 있습니다 왜에 JSON을 구축하는 javascript, javascript IS json – dstarh

+0

무슨 뜻인지 잘 모르겠습니다. JSON은 "JavaScript Object Notation"입니다. 이는 언어와 무관 한 데이터 교환 형식입니다. – Stephen305

+0

나는 올바른 말을 했어야했다. JavaScript 객체는 json입니다. 문자열 연결을 사용할 필요가 없습니다. 선택한 답변에서 수행 된대로 객체 그래프를 작성하십시오. – dstarh

답변

3
var a, data = {}; 
data[field_name] = { "answers" : { } }; 
a = data[field_name]["answers"]; 

for(var i=0; i<answers.length; i++){ 
    a[i] = answers[i]; 
} 


console.log(data); 

이 때문에 data[field_name] 같아야 = { "answers" : [ ]};

3

개인적으로 JSON.stringify를 사용하여 javascript 객체를 json 문자열 형식으로 변환합니다.

자세한 내용을 확인하십시오.

http://msdn.microsoft.com/en-us/library/cc836459(v=vs.85).aspx

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/stringify

또한 (객체에 문자열에서) 다른 방법으로 갈

var myObject = JSON.parse(myJSONtext, reviver); 

http://www.json.org/js.html

+0

예, 나는 eval()이 위험하다는 것을 읽었습니다. – Stephen305

관련 문제