Flutter读取本地JSON数据后如何按order字段升序排列返回结果
Flutter 按order字段升序排序JSON数据方案
直接修改你的readDataBase函数,在返回列表前调用Dart内置的sort方法按order字段排序即可,修改后完整代码如下:
readDataBase() async { String data = await DefaultAssetBundle.of(context).loadString("assets/db/tb.json"); final jsonResult = jsonDecode(data); List bookList = jsonResult['book']; // 按order字段升序排列,两个元素的比较返回值决定排序顺序 bookList.sort((prev, next) => (prev['order'] as int).compareTo(next['order'] as int)); return bookList; }
注意事项
- 请确认你的JSON数据中
order字段为整数类型,如果是字符串格式的数字,请先转换为整数再比较:bookList.sort((prev, next) => int.parse(prev['order']).compareTo(int.parse(next['order']))); - 如果存在部分条目没有
order字段的情况,可以添加默认值避免运行时报错,示例如下(缺省order的条目会排在列表末尾):bookList.sort((prev, next) => (prev['order'] ?? 999).compareTo(next['order'] ?? 999));
内容的提问来源于stack exchange,提问作者mafortis
相关产品推荐
相关产品推荐

