개발자 랩실/플러터 (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();
}
}
......