设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

Simdjson:一个超高速的JSON解析工具(4)

发布时间:2019-03-25 17:18 所属栏目:21 来源:周大涛编译
导读:以下函数将查找所有user.id整数: voidsimdjson_traverse(std::vectorint64_tanswer,ParsedJson::iteratori){ switch(i.get_type()){ case'{': if(i.down()){ do{ boolfounduser=equals(i.get_string(),user); i.ne

以下函数将查找所有user.id整数:

  1. void simdjson_traverse(std::vector<int64_t> &answer, ParsedJson::iterator &i) { 
  2.   switch (i.get_type()) { 
  3.   case '{': 
  4.     if (i.down()) { 
  5.       do { 
  6.         bool founduser = equals(i.get_string(), "user"); 
  7.         i.next(); // move to value 
  8.         if (i.is_object()) { 
  9.           if (founduser && i.move_to_key("id")) { 
  10.             if (i.is_integer()) { 
  11.               answer.push_back(i.get_integer()); 
  12.             } 
  13.             i.up(); 
  14.           } 
  15.           simdjson_traverse(answer, i); 
  16.         } else if (i.is_array()) { 
  17.           simdjson_traverse(answer, i); 
  18.         } 
  19.       } while (i.next()); 
  20.       i.up(); 
  21.     } 
  22.     break; 
  23.   case '[': 
  24.     if (i.down()) { 
  25.       do { 
  26.         if (i.is_object_or_array()) { 
  27.           simdjson_traverse(answer, i); 
  28.         } 
  29.       } while (i.next()); 
  30.       i.up(); 
  31.     } 
  32.     break; 
  33.   case 'l': 
  34.   case 'd': 
  35.   case 'n': 
  36.   case 't': 
  37.   case 'f': 
  38.   default: 
  39.     break; 
  40.   } 
深入比较

如果您想了解各种解析器如何验证给定的JSON文件:

  1. make allparserscheckfile 
  2. ./allparserscheckfile myfile.json 

对于性能比较:

  1. make parsingcompetition 
  2. ./parsingcompetition myfile.json 

进行更广泛的比较:

  1. make allparsingcompetition 
  2. ./allparsingcompetition myfile.json 

【编辑推荐】

  1. SAP 开源 SCA 工具,扫描软件包依赖漏洞
  2. Gartner报告:正处于数据科学与机器学习工具 “大爆炸”的时代
  3. 可视化实时Web日志分析工具,堪称神器!
  4. 超 100000 个 GitHub 代码库泄露了 API 或加密密钥
  5. 如何阅读一份源代码?
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读