Skip to content
On this page

JSON 데이터 사용

API나 데이터베이스 등 리소스를 연결해서 테스트하는 것이 당장 어렵다면 JSON 데이터로 셀렉트를 이용해보세요.

JSON 사용 예시 - 상품 관리

yaml
pages:
  - path: products
    blocks:
      - type: query
        resource: json+sql
        sqlType: select
        sql: |
          SELECT * FROM products  WHERE (LENGTH(:status)=0 OR status = :status)
            AND (LENGTH(:product_id)=0 OR id = CAST(:product_id AS NUMBER))
          ORDER BY id DESC LIMIT 100
        columns:
          id:
            label: ID
          name:
            label: 상품명
          status:
            label: 상태
            color:
              PASSED: green
              REJECTED: red
              default: gray
          created_at:
            label: 생성일
          updated_at:
            label: 수정일
          deleted_at:
            label: 삭제일
        paginationOptions:
          enabled: true
          perPage: 10
        params:
          - key: product_id
            label: 상품ID
          - key: status
            label: 상태
            radioButtonGroup: true
            radio:
              - value: ''
                label: ALL
              - PASSED
              - REJECTED
              - INSPECT_NEEDED
        actions:
          - type: query
            label: 검수 올리기
            confirm: 정말 검수 진행하시겠습니까?
            resource: json+sql
            sqlType: update
            sql: |
              UPDATE products  SET status = 'INSPECT_NEEDED',
                updated_at = NOW()
              WHERE id = :id
            placement: top right
            forEach: true
            params:
              - key: id
                valueFromSelectedRows: id
        selectOptions:
          enabled: true
          selectOnCheckboxOnly: true
        json: {
          "products": [
            {
              "id": 1,
              "name": "테스트 상품",
              "status": "REJECTED",
              "created_at": "2023-02-15T03:57:43.000Z",
              "updated_at": "2023-02-15T04:04:31.000Z",
              "deleted_at": null
            },
            {
              "id": 2,
              "name": "케맥스 핸드드리퍼",
              "status": "PASSED",
              "created_at": "2023-02-15T03:57:45.000Z",
              "updated_at": "2023-02-15T04:03:45.000Z",
              "deleted_at": null
            },
            {
              "id": 3,
              "name": "LG 모니터 27인치",
              "status": "PASSED",
              "created_at": "2023-02-15T03:57:47.000Z",
              "updated_at": "2023-02-15T04:03:47.000Z",
              "deleted_at": null
            },
            {
              "id": 4,
              "name": "스타벅스 텀블러 크리스마스 에디션",
              "status": "PASSED",
              "created_at": "2023-02-15T03:57:48.000Z",
              "updated_at": "2023-02-15T04:03:50.000Z",
              "deleted_at": null
            },
            {
              "id": 5,
              "name": "맥북 프로 2022ver",
              "status": "INSPECT_NEEDED",
              "created_at": "2023-02-15T03:57:49.000Z",
              "updated_at": "2023-02-15T04:04:02.000Z",
              "deleted_at": null
            },
            {
              "id": 6,
              "name": "닥터페퍼 제로 20캔",
              "status": "INSPECT_NEEDED",
              "created_at": "2023-02-15T03:57:51.000Z",
              "updated_at": "2023-02-15T04:04:06.000Z",
              "deleted_at": null
            },
            {
              "id": 7,
              "name": "가열식 가습기 오쿠 8L",
              "status": "INSPECT_NEEDED",
              "created_at": "2023-02-15T03:57:52.000Z",
              "updated_at": "2023-02-15T04:04:10.000Z",
              "deleted_at": null
            }
          ]
        }

resource: json+sql

resource 키의 값을 json+sql로 하면 JSON 데이터를 SQL 쿼리로 컨트롤할 수 있습니다.

json 키

json 키의 값에는 JSON 형태나 YAML 형태로 데이터를 입력할 수 있습니다.

JSON 형태

yaml
json: {
  "products": [
    {
      "id": 1,
      "name": "테스트 상품",
      "status": "REJECTED",
      "created_at": "2023-02-15T03:57:43.000Z",
      "updated_at": "2023-02-15T04:04:31.000Z",
      "deleted_at": null
    }
	]

YAML 형태

yaml
json:
  products:
    - id: 1
      name: 테스트 상품
      status: REJECTED
      created_at: 2023-02-15T03:57:43.000Z
      updated_at: 2023-02-15T04:04:31.000Z
      deleted_at: null

예시 YAML 값이 의미하는 바는 아래와 같습니다.

  • products 테이블
  • -는 배열Array을 의미

📘 JSON, YAML, CSV 변환 방법

예시 데이터가 데이터베이스나 스프레드시트인 경우에는 테이블 또는 CSV 형태이고, API 호출 결과라면 JSON인 경우가 많습니다.

셀렉트에서는 JSON과 YAML 형태를 지원하기 때문에 CSV 데이터를 변환해서 입력하시거나 JSON, YAML 데이터를 그대로 입력하시면 됩니다.

변환 서비스가 필요하시다면 CSV to JSON 이나 JSON to YAML 등으로 검색하시면 찾아보실 수 있습니다.