在Flutter中,我們經常需要將JSON數據轉化為List數據類型。Dart中提供了一個json庫,可以幫助我們實現JSON轉化。
import 'dart:convert';
void main() {
String jsonString = '[{"name":"Tom","age":20},{"name":"Jerry","age":18}]';
List<dynamic> list = jsonDecode(jsonString);
}
首先,我們需要導入dart:convert庫。隨后定義一個JSON字符串,使用jsonDecode函數將其解析為dynamic類型的List。jsonDecode函數會自動將JSON字符串轉化為對應的對象。
由于一個List中的元素類型可能不同,例如上述例子中,當JSON中的某些元素是字符串而其他元素是數字時,我們需要使用dynamic類型存儲。
鑒于此,我們需要根據實際情況來指定List的類型:
class Person {
String name;
int age;
Person(this.name, this.age);
}
List<Person> list = (jsonDecode(jsonString) as List).map((e) {
return Person(e['name'], e['age']);
}).toList();
在此例中,我們定義一個Person類,包含了name和age屬性。隨后我們可以使用jsonDecode函數解析JSON字符串,并使用map函數將其轉化為Person類型的List。
最后我們需要調用toList方法,以返回最終的List類型。
下一篇dart中json