logo icon
ธนินัชดอทคอม - รับสร้าง Website, Mobile Application
image

บทความ

ธนินัช ดอทคอม - ผู้เชี่ยวชาญทำเว็บไซต์

การแปลงข้อมูล JSON เป็น Dart

การแปลงข้อมูล JSON เป็น Dart สามารถทำได้โดยใช้ฟังก์ชัน json.decode() ซึ่งเป็นฟังก์ชันสำหรับแปลงข้อมูล JSON เป็น Dart object ได้ง่าย ๆ ดังนี้

import 'dart:convert';

void main() {
String jsonString = '{"name": "John Smith", "email": "john.smith@example.com"}';
Map<String, dynamic> data = json.decode(jsonString);
print(data['name']); // ผลลัพธ์: John Smith
print(data['email']); // ผลลัพธ์: john.smith@example.com
}

ตัวอย่างการแปลงข้อมูล JSON ให้อยู่ในรูปแบบของ Map ในภาษา Dart โดยใช้ฟังก์ชัน json.decode() จาก library dart:convert ซึ่งเป็น built-in library ในภาษา Dart

โดยสามารถอธิบายการทำงานได้ดังนี้

  1. กำหนดข้อมูลในรูปแบบ JSON โดยกำหนดในรูปของ String ในตัวแปร jsonString
String jsonString = '{"name": "John Smith", "email": "john.smith@example.com"}';
  1. ใช้ฟังก์ชัน json.decode() เพื่อแปลงข้อมูล JSON ใน jsonString เป็น Map และกำหนดให้ตัวแปร data เก็บค่า Map ที่ได้
Map<String, dynamic> data = json.decode(jsonString);
  1. นำข้อมูลใน Map data มาแสดงผลโดยใช้ key เพื่อเข้าถึงข้อมูลใน Map
print(data['name']); // ผลลัพธ์: John Smith
print(data['email']); // ผลลัพธ์: john.smith@example.com
 

ในตัวอย่างข้างต้น มีการสร้างตัวแปร jsonString ที่เก็บข้อมูล JSON และใช้ฟังก์ชัน json.decode() ในการแปลงข้อมูล JSON เป็น Dart object ที่เก็บไว้ในตัวแปร data จากนั้นใช้ data['name'] และ data['email'] เพื่อเข้าถึงข้อมูลภายใน object และแสดงผลลัพธ์ออกทางหน้าจอ

 หาก JSON มีโครงสร้างที่ซับซ้อนขึ้น สามารถแปลงเป็น Object ในภาษา Dart ได้โดยใช้ Class และการแปลง JSON ดังนี้:

class User {
  final String name;
  final int age;

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

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

String jsonString = '{"name": "John", "age": 30}';
Map<String, dynamic> userMap = json.decode(jsonString);
User user = User.fromJson(userMap);

 

โค้ดชุดนี้เป็นตัวอย่างการแปลง JSON String ให้กลายเป็น Object ในภาษา Dart ด้วย Class ชื่อ User โดยมีขั้นตอนดังนี้:

  1. สร้าง Class ชื่อ User ที่ประกอบด้วย properties name และ age ที่เป็น final และ required ซึ่งหมายความว่าต้องระบุค่าให้ครบทั้งสองค่าเมื่อสร้าง Object จาก Class นี้

    class User {
      final String name;
      final int age;
    User({required this.name, required this.age});

  2. สร้างฟังก์ชั่นชื่อ fromJson ที่รับพารามิเตอร์เป็น Map ของ key-value pairs และ return Object ของ Class User ด้วยการใช้ค่าใน Map ในการสร้าง Object

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

  3. สร้าง JSON String ที่ต้องการแปลงเป็น Object ในภาษา Dart

    String jsonString = '{"name": "John", "age": 30}';

  4. ใช้ json.decode() เพื่อแปลง JSON String เป็น Map ของ key-value pairs

    Map<String, dynamic> userMap = json.decode(jsonString);

  5. ใช้ฟังก์ชั่น fromJson() เพื่อแปลง Map เป็น Object ของ Class User

    User user = User.fromJson(userMap);

ดังนั้นผลลัพธ์ที่ได้จากโค้ดดังกล่าวคือ Object user ที่มีชื่อเป็น "John" และอายุเป็น 30

 

 

 

 

หนังสือพัฒนาตัวเอง

จุดเริ่มต้นที่ชัดเจน

เว็บไซต์หรือแอปพลิเคชั่นของคุณเริ่มต้นที่นี่

ลงทะเบียนแล้วเราจะส่งข้อเสนอที่ดีที่สุดให้กับคุณ