Javascript - Class로 JSON 만들기

뚝딱뚝딱 업무 자동화

Posted by Yan on April 29, 2022

javascript class

업무 자동화를 위한 코드를 짜다 보니, request를 위한 json을 보다 편하게 만들 수 있는 방법이 없을까?라는 생각이 들었다. 그래서 내가 생각해 낸 것은 javascript의 new 연산자와 constructor를 이용해 class를 뚝딱 만든 뒤, json화 하는 것이다.

Class

  • 클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀
  • 객체를 정의하기 위한 상태(멤버 변수)와 메서드(함수)로 구성된다.
  • new 연산자를 사용할 수 있다.
  • 생성자를 사용할 수 있다.

코드 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Class Customer {

  constructor(name, age, job, email) {
    this.name = name;
    this.age = age;
    this.job = job;
    this.email = email;
  }

  method1() {

  }
  ...
}

let cust1 = new Customer('Midori', 31, 'painter', 'lvse@gmail.com');

이렇게 만든 cust1는 출력했을 때 아래와 같이 나온다.

1
2
3
4
5
6
cust1 {
  name: 'Midori',
  age: 31,
  job: 'painter',
  email: 'lvse@gmail.com'
}

이것을 Object와 같은 형태로 만들어서 배열에 넣고 싶었다.

그리하여, JSON.parse()JSON.stringify를 사용하여 object처럼 보이도록 만들어 보았다.

1
JSON.parse(JSON.stringify(cust1))

이렇게 하면 출력했을 때 json같은 형태로 나온다.

1
2
3
4
5
6
{
  name: 'Midori',
  age: 31,
  job: 'painter',
  email: 'lvse@gmail.com'
}

그러니까 계속해서 새로운 object를 만들고 싶다면 아래와 같이 사용할 수 있는 것이다.

1
JSON.parse(JSON.stringify(new Customer('Midori', 31, 'painter', 'lvse@gmail.com')))

엄청난 발견은 아니지만.. 어쨌든 액셀 메크로를 사용해야 했던 문제가 이렇게 해결되었다..

reference

클래스와 기본 문법
객체