투케이2K

81. (Flutter/플러터) [Mac] : [Dart] : 다트 - [json] JSON 형식 문자열 jsonDecode 디코딩 수행 및 Class 객체에 매핑 수행 본문

Flutter

81. (Flutter/플러터) [Mac] : [Dart] : 다트 - [json] JSON 형식 문자열 jsonDecode 디코딩 수행 및 Class 객체에 매핑 수행

투케이2K 2024. 5. 30. 20:35
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Dart

 

[소스 코드]

import 'package:flutter/material.dart';
import 'dart:developer';
import 'dart:core';
import 'dart:convert';


// -----------------------------------------------------------------------------------------
// TODO [class] : [JSON 디코딩 값을 담을 클래스]
// -----------------------------------------------------------------------------------------
class User {

  final String name;
  final int age;

  User({required this.name, required this.age});

  factory User.fromJson(Map<String, dynamic> json) { // [Map To Class Data]
    return User(
        name: json['name'],
        age: json['age']
    );
  }
}





// -----------------------------------------------------------------------------------------
// TODO [main] : [application 의 진입점 역할]
// -----------------------------------------------------------------------------------------
void main() {

  /**
   * ------------------------------------------------
   * [요약 설명]
   * ------------------------------------------------
   * 1. 필요 import : import 'dart:convert';
   * ------------------------------------------------
   * 2. 참고 사이트 [convert] : https://api.dart.dev/stable/3.4.1/dart-convert/dart-convert-library.html
   * ------------------------------------------------
   * 3. 참고 사이트 [json] : https://api.flutter.dev/flutter/dart-convert/jsonEncode.html
   * ------------------------------------------------
   * */

  try {

    // [초기 변수 선언] : [JSON 형식 문자열]
    String jsonString = '{"name": "투케이", "age": 30}';


    // [jsonDecode >> Map 삽입]
    Map<String, dynamic> map = jsonDecode(jsonString);


    // [Map >> Class 삽입]
    User user = User.fromJson(map);


    // [로그 출력]
    log("");
    log("-------------------------------------------------------");
    log("name :: ${user.name}");
    log("-------------------------------------------------------");
    log("age :: ${user.age}");
    log("-------------------------------------------------------");
    log("");

  }
  catch (e) {
    log("");
    log("-------------------------------------------------------");
    log("Catch :: ${e}");
    log("-------------------------------------------------------");
    log("");
  }

}
 

[결과 출력]

 

 

반응형
Comments