json에 ""(따옴표)가 붙어 있지 않아서 json.decode 시 오류가 날 경우 해결 방법

sumong·2023년 3월 15일
2

링크(stackOverflow)

import 'dart:convert';

void main() async {
  
  String raw = "{data: {name: joy, tags: aa,bb, city: jakarta}}";
  print("Test 0: $raw");
  
  String jsonString = _convertToJsonStringQuotes(raw: raw);
  print("Test 1: $jsonString");
  
  final Map<dynamic, dynamic> result = json.decode(jsonString);
  print('Test 2: $result');
  
}


String _convertToJsonStringQuotes({required String raw}) {
    String jsonString = raw;

    /// add quotes to json string
    jsonString = jsonString.replaceAll('{', '{"');
    jsonString = jsonString.replaceAll(': ', '": "');
    jsonString = jsonString.replaceAll(', ', '", "');
    jsonString = jsonString.replaceAll('}', '"}');

    /// remove quotes on object json string
    jsonString = jsonString.replaceAll('"{"', '{"');
    jsonString = jsonString.replaceAll('"}"', '"}');

    /// remove quotes on array json string
    jsonString = jsonString.replaceAll('"[{', '[{');
    jsonString = jsonString.replaceAll('}]"', '}]');

    return jsonString;
  }

위처럼 String의 특정 위치에 "를 붙이는 util 함수를 짜서 적용하면 된다.

profile
Flutter 메인의 풀스택 개발자 / 한양대 컴퓨터소프트웨어학과, HUHS의 화석

1개의 댓글

comment-user-thumbnail
2024년 3월 8일

감사합니다

답글 달기