개발자 랩실/플러터 (Flutter)

[Flutter] Unexpected character (at character)

sina.dev 2022. 3. 15. 09:34
728x90

에러 메시지

Unexpected character (at character) Error in Flutter

 

class TestVo {
    String? name;
    String? startHr;
    String? endHr;
    double? amt;

    TestVo.fromJson(json) {
        name = json['name'];
        startHr = json['start_hr'];
        endHr = json['end_hr'];
        amt = json['amt'];
    }

    @override
    String toString() {
        return {
            'name': name,
            'startHr': startHr,
            'endHr': endHr,
            'amt': amt
        }.toString();
    }
}

void main() {
    TestVo vo = TestVo();
    vo?.name = 'test';
    vo?.startHr = '0000';
    vo?.endHr = '2400';
    vo?.amt = 20.0;

    Map<String, dynamic> json = json.decode(vo.toString());
}

 

에러 이유

  • Vo 객체를 String 타입으로 변환 후 json.decode() 메소드를 이용했을 때 에러가 발생했다.
  • Vo 객체의 String은 String으로 변환할 수는 있지만 json.decode로 메소드 이용해서 형변환 할 때는 key값이나 value 값이 String 타입일 때 구분이 되어야 한다.

 

해결 방안

  • Vo 객체의 toString() 메소드를 수정하면 된다.
class TestVo {
    ......

    @override
    String toString() {
        return {
            '"name"': '"$name"',
            '"startHr"': '"$startHr"',
            '"endHr"': '"$endHr"',
            '"amt"': amt
        }.toString();
    }
}

......