后台大型JSON的优化解析

后台大型JSON的优化解析,json,dart,flutter,Json,Dart,Flutter,我正在解析类似于的大型JSON数据 这里大约有3000多个章节对象。我只需要那些章中带有“lang\u code:”gb“”的对象,它大约是1300个,带有一些基本对象,如标题,说明。所以基本上55%的JSON不是我用的 我使用 这给了我正确的类,但是这个方法太慢了 任何加速的建议。如果您需要的大部分信息都是稀疏的,那么最好以有针对性的方式将其挑选出来,而不是为所有内容创建对象 你无法破解整个json字符串,在我的笔记本电脑上大约需要60毫秒。修剪非gb章节只需几毫秒,将剩下的映射到一些可用对象

我正在解析类似于的大型JSON数据

这里大约有3000多个
章节
对象。我只需要那些
中带有
“lang\u code:”gb“
”的对象,它大约是1300个,带有一些基本对象,如
标题
说明
。所以基本上55%的JSON不是我用的

我使用 这给了我正确的类,但是这个方法太慢了


任何加速的建议。

如果您需要的大部分信息都是稀疏的,那么最好以有针对性的方式将其挑选出来,而不是为所有内容创建对象

你无法破解整个json字符串,在我的笔记本电脑上大约需要60毫秒。修剪非gb章节只需几毫秒,将剩下的映射到一些可用对象还需要几毫秒。总时间到一些可用对象:m['lang_code']!='gb'); Map chapters=jChapters.Map((Um){ 字符串编号=m[“章节”]; 返回地图条目(编号,章节(编号,m['title']); }); int t2=DateTime.now().millissecondssinceepoch; 打印(t2-t1); 印刷品(章节); } 班级章节{ 字符串编号; 字符串标题; 章节(本编号、本标题); @凌驾 字符串toString()=>“章号:$title”; }
谢谢您的帮助;我会尽快测试并让你知道。在Flatter应用程序中完成JSON解析需要几分钟。很抱歉,没有测试答案。我更新了WebStorm和IntellijIDEA(糟糕的想法),但不知怎么的,在最新的更新中,事情搞砸了。我现在无法打开任何文件。我会尽快接受的(
import 'dart:convert';
import 'dart:io';

main() {
  String manga = new File('manga.json').readAsStringSync();
  int t1 = DateTime.now().millisecondsSinceEpoch;

  Map<String, dynamic> data = json.decode(manga);
  Map<String, dynamic> jChapters = data['chapter'];
  jChapters.removeWhere((_, m) => m['lang_code'] != 'gb');

  Map<String, Chapter> chapters = jChapters.map((_, m) {
    String number = m['chapter'];
    return MapEntry(number, Chapter(number, m['title']));
  });

  int t2 = DateTime.now().millisecondsSinceEpoch;
  print(t2 - t1);

  print(chapters);
}

class Chapter {
  String number;
  String title;

  Chapter(this.number, this.title);

  @override
  String toString() => 'Chapter #$number:$title';
}