본문 바로가기
개발/FRONT

jquery json을 form으로, form을 json으로

by 잠킴98 2024. 1. 13.
반응형

 

// 테스트 html 코드

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼 데이터를 JSON으로 변환</title>
</head>
<body>

<form id="myForm">
    <label for="name">이름:</label>
    <input type="text" id="name" name="name" required><br>

    <label for="email">이메일:</label>
    <input type="email" id="email" name="email" required><br>

    <label for="age">나이:</label>
    <input type="number" id="age" name="age" required><br>

    <button type="button" onclick="convertToJson()">JSON으로 변환</button>
</form>

</body>
</html>

 

 

1. json -> form 

 

<script>
function convertToJson() {

    // FormData 객체를 사용하여 폼 데이터 가져오기
    var formData = new FormData($("#myForm")[0]);

    // JSON 객체 생성
    var jsonObject = {};

    // FormData를 JSON으로 변환
    formData.forEach(function(value, key){
        jsonObject[key] = value;
    });

    // JSON 출력 또는 전송 등의 작업 수행
    console.log(JSON.stringify(jsonObject));
}
</script>

 

form 데이터를 forEach 문으로 돌려서 json에 넣어 주었다.

 

결과는 아래와 같이 나온다. 

{
  "name": "John",
  "email": "john@example.com",
  "age": "25"
}

 

 

2. json -> form

 

// 가상의 JSON 데이터 예시
var jsonData = {
    name: "John Doe",
    email: "john@example.com",
    age: 25
};

// JSON 데이터를 폼에 설정
$.each(jsonData, function(key, value) {
    $('form#detail [name=' + key + ']').val(value);
});

 

마찬가지로 json을 for문으로 돌려서 form 값을 넣어 주었다. 

 

 

1개씩 넣어주려면 아래와 같이 사용하면 된다.

// 폼 내의 각 입력 요소에 JSON 데이터 값을 설정
$('form#detail [name=name]').val(jsonData.name);
$('form#detail [name=email]').val(jsonData.email);
$('form#detail [name=age]').val(jsonData.age);

 

 

 

반응형

'개발 > FRONT' 카테고리의 다른 글

vue 라이프 사이클에 대하여  (0) 2024.01.14
NPM이란?  (0) 2024.01.13
data attribute와 dataset  (0) 2024.01.07
ES2015+(async, await)  (0) 2024.01.07
ES2015+(Promise)  (0) 2024.01.07