JSON

2012-08-04 2 views
0

의 그것과 유사 문자열로 데이터를 변환 코드 아래에 기본적으로JSON

<form id="myform" onsubmit="return saveUserData('firstname','lastname');" method="post"> 
function saveUserData() { 
    createJSONString(arguments); 
    return false; 
} 

function createJSONString(arguments) { 
    var userDetails = "{"; 
    for (i = 0; i < arguments.length - 1; i++) { 
     userDetails += '"' + arguments[i] + '":' + '"'  +document.getElementById(arguments[i]).value + '",'; 
    } 
    userDetails += '"' + arguments[i] + '":' + '"' + document.getElementById(arguments[i]).value + "}"; 
    alert(userDetails); 
} 

에게 saveUserData 버튼을 제출 양식에서 호출되는 함수를 구현하는 더 좋은 방법이 있나요. 따라서 아이디어는 함수에 매개 변수를 전달하고 문자열과 같은 JSON을 만들어 Chrome 및 Firefox의 localStorage 변수에 저장할 수 있도록하는 것입니다. 아이디어는 OCP에서 실패하지 않습니다. 장래에 중간 이름을 추가하면 JavaScript 코드가 변경 될 필요가 없기 때문에 HTML 만 변경됩니다. 이것을 구현하는 더 좋은 방법이 있습니까?

감사

+0

코드 삽입 및 붙이기를 시도했습니다. 어쨌든 매번 편집기에서 코드를 포맷하고 여기에 붙여 넣으면 배열이 달라집니다. 코드가 제대로 들여 쓰기되도록하려면 어떻게해야합니까? – user1536201

+0

내 편집이 승인되었다고 가정하면 코드를 포맷했습니다. 일반적으로 탭 대신 네 개의 공백이 있습니다. – Daedalus

+0

필드 값에 큰 따옴표가 포함되면 어떻게됩니까? 왜 JSON을 사용하는 대신이 "JSON like"형식 ('createJSONString'이 아닌'createJSONString'이라는 함수에서)을 사용하고 있습니까? – DCoder

답변

1

당신이 방법을 json.stringify 사용하여 JSON 문자열을 만들 수 있습니다. json 라이브러리를 사용하면 chrome 및 ff가이 메소드에서 빌드됩니다.

http://json.org/

먼저이 같은 데이터를 자바 스크립트 객체를해야한다.

var data = { 
    name : 'blu..', 
    age : 19 
}; 

JSON.stringify(data); 

// result is => "{"name":"blu..","age":19}" 



function createJSONString(arguments) { 
    var obj = {};  
    for (i = 0; i < arguments.length - 1; i++) { 
     obj[arguments[i]] = document.getElementById(arguments[i]).value; 
    } 

    return JSON.stringify(obj); 
}; 
+0

감사합니다. 나는 DCoders 주석을 본 후에도 똑같이 구현했습니다. – user1536201