Dart & Flutter/궁금했던 것, 몰랐던 것
List를 하나의 string으로 변환하기 (Serialization)
낭초비
2022. 4. 20. 13:24
반응형
Sql DB에 자료를 저장하려면 아래와 같은 타입들이 가능하다. (자료링크)
그런데 저장해야할 자료 type중에 array나 list가 있다면?
그 data를 db에 저장 가능한 타입으로 변환해서 저장을 해야한다.
보통은 String으로 저장하는게 편하다. string에 다양한 메소드들이 이미 구현 되어있어서 다른 타입에서 string으로 변환하거나 string에 포함되어있는 separator를 기준으로 내용들을 array<string>으로 변환하기 쉽기 때문이다.
아래의 예는 List<double> 형태의 데이터를 sql DB에 저장할 수 있도록 string으로 변환하는 코드(dart언어)와 ,
DB의 string 데이터(list<double>을 string으로 만들어 저장해두었던..)를 다시 List<double> 로 변환하는 코드이다.
static String encodeListDoubleToString(List<double> listOfDouble) {
return listOfDouble
.map(
(element) {
return element.toStringAsFixed(2); // 소숫점 이하 2자리까지 남겨둠
},
)
.toList()
.join(';'); //double간의 분할자? 분리자? 넣기
}
static List<double> decodeStringToListDouble(String stringWithSeperator) {
return stringWithSeperator
.split(';') // 분리자를 기준으로 string을 list string으로 분할
.map((element) => double.parse(element)) // list item 각각을 double로 변환
.toList();
}
반응형