我认为您正在尝试设置和获取字符串列表。请参阅下面的代码。
第 1 步:解析您的 json 字符串以存储列表。底部代码
第 2 步:for 循环存储列表以获取存储 ID 并添加到 myListOfIntegers
如果您的商店 id 是 int。您可以使用以下代码 sn-p ,请参见示例 2
myListOfIntegers.map((i)=>i.toString()).toList()
转换为字符串。
商店 ID 可以是字符串或 json 字符串
List<String> myListOfStrings= ["1","2","3","4"];
List<String> myListOfJsonStrings= ['{ "storeid":"123", "storename":"jock"}',' { "storeid":"456", "storename":"abc"}' ];
使用 prefs.setStringList 和 prefs.setStringList
完整代码
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(new MaterialApp(
home: new Scaffold(
body: new Center(
child: new RaisedButton(
onPressed: _save,
child: new Text('Save my list of int'),
),
),
),
));
}
_save() async {
List<String> myListOfStrings= ["1","2","3","4"];
List<String> myListOfJsonStrings= ['{ "storeid":"123", "storename":"jock"}',' { "storeid":"456", "storename":"abc"}' ];
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setStringList('mylist', myListOfStrings);
List<String> myList = (prefs.getStringList('mylist') ?? List<String>()) ;
print('Your list $myList');
await prefs.setStringList('myjsonlist', myListOfJsonStrings);
List<String> myjsonList = (prefs.getStringList('myjsonlist') ?? List<String>()) ;
print('Your list $myjsonList');
}
结果是
I/flutter (31495): Your list [1, 2, 3, 4]
I/flutter (31495): Your list [{ "storeid":"123", "storename":"jock"}, { "storeid":"456", "storename":"abc"}]
示例 2:如果您的商店 id 是 int
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(new MaterialApp(
home: new Scaffold(
body: new Center(
child: new RaisedButton(
onPressed: _save,
child: new Text('Save my list of int'),
),
),
),
));
}
_save() async {
List<int> myListOfIntegers = [1,2,3,4];
List<String> myListOfStrings= myListOfIntegers.map((i)=>i.toString()).toList();
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String> myList = (prefs.getStringList('mylist') ?? List<String>()) ;
List<int> myOriginaList = myList.map((i)=> int.parse(i)).toList();
print('Your list $myOriginaList');
await prefs.setStringList('mylist', myListOfStrings);
}
你的 json 字符串
{
"success": true,
"data": [
{"store_id": 0,
"name": "Bag",
"store_geocode": "",
"longitude": "",
"latitude": "",
"store_address": "Midori-Ku, Yokohama-Shi, Japan",
"store_telephone": "123456789",
"thumb": "http://yourdomainname.com/image/cache/no_image-500x500.png}, {store_id: 1, name: Asian Spice Market, store_geocode: , longitude: , latitude: , store_address: Yokohama Shi, Naka ku, Noge cho 3-160-4, store_telephone: 0804053636, thumb: http://yourdomainname.com/image/cache/catalog/stores/asian_spice_market/asian_spice_market_logo-500x500.png"
}
]
}
用
解析你的 json 字符串
// To parse this JSON data, do
//
// final store = storeFromJson(jsonString);
import 'dart:convert';
Store storeFromJson(String str) => Store.fromJson(json.decode(str));
String storeToJson(Store data) => json.encode(data.toJson());
class Store {
bool success;
List<Datum> data;
Store({
this.success,
this.data,
});
factory Store.fromJson(Map<String, dynamic> json) => new Store(
success: json["success"],
data: new List<Datum>.from(json["data"].map((x) => Datum.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"success": success,
"data": new List<dynamic>.from(data.map((x) => x.toJson())),
};
}
class Datum {
int storeId;
String name;
String storeGeocode;
String longitude;
String latitude;
String storeAddress;
String storeTelephone;
String thumb;
Datum({
this.storeId,
this.name,
this.storeGeocode,
this.longitude,
this.latitude,
this.storeAddress,
this.storeTelephone,
this.thumb,
});
factory Datum.fromJson(Map<String, dynamic> json) => new Datum(
storeId: json["store_id"],
name: json["name"],
storeGeocode: json["store_geocode"],
longitude: json["longitude"],
latitude: json["latitude"],
storeAddress: json["store_address"],
storeTelephone: json["store_telephone"],
thumb: json["thumb"],
);
Map<String, dynamic> toJson() => {
"store_id": storeId,
"name": name,
"store_geocode": storeGeocode,
"longitude": longitude,
"latitude": latitude,
"store_address": storeAddress,
"store_telephone": storeTelephone,
"thumb": thumb,
};
}