本文作者:合肥工业大学 电子商务研究所 钱洋 email:1563178220@qq.com 。
内容可能有不到之处,欢迎交流。

未经本人允许禁止转载。

文章目录

  • 问题背景
  • 问题解决
  • 完整的案例代码

问题背景

在编写网络爬虫时,经常要处理JSON数据。其中,针对JSON字符串,可利用fastjson将其转化成JSON对象,例如:

JSONObject jsonfile = JSONObject.parseObject(standardJson);

但对复杂的JSON文件,如该网站中通过在元素中嵌入的JSON字符串串。


格式化的JSON文件为:

在采集多页数据时,使用fastjson解析类似的JSON串,如果使用上述代码,可能会产生报错。

原因是parseObject(String json)方法在将JSON字符串转化成JSON对象时,调整了顺序,而顺序改变可能导致解析出错。

问题解决

在fastjson中,还提供了其他操作JSON的方法,可以使得转化的JSON对象和输入的JSON字符串保持一致,如下为该方法的使用。

JSONObject jsonfile = JSONObject.parseObject(standardJson, Feature.OrderedField);

基于这种方法处理后的JSON对象,再去解析便不会产生错误。

完整的案例代码

请关注网络爬虫技术-JAVA网络爬虫:https://github.com/soberqian/Java-Carwler-Technology

fastjson解析JSON数据乱序导致的问题相关推荐

  1. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...

  2. SpringBoot中使用FastJson解析Json数据

    场景 1.SpringBoot默认配置的是Jackson. 2.项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/35688 ...

  3. 5.spring boot使用FastJson解析JSON数据

    2019独角兽企业重金招聘Python工程师标准>>> 1.引入FastJson依赖包 <dependency><groupId>com.alibaba< ...

  4. Andorid中使用Gson和Fast-json解析库解析JSON数据---第三方库学习笔记(二)

    JSON介绍: JSON:JavaScript对象表示法 JSON是存储和交换文本信息的语法. 特点: JSON是轻量级的文本数据交换格式 JSON独立于语言和平台 JSON具有自我描述性,更易理解 ...

  5. Okhttp源码分析以及Google Gson解析json数据实例

    Okhttp Github的Okhttp OkHttp是一个高效的HTTP客户端,它有以下默认特性: 支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接 透明的GZIP压缩减少响 ...

  6. fastjson解析json简介

    2019独角兽企业重金招聘Python工程师标准>>> 一.简介 阿里巴巴FastJson是一个Json处理工具包,是一个Java语言编写的高性能功能完善的JSON库.,包括&quo ...

  7. gson生成jsonobject_GSON形式生成和解析json数据

    GSON 方式生成和解析 json 数据 客户端与服务器进行数据交互时, 常常需要将数据在服务器端将数据转化成字符串并在客户 端对 json 数据进行解析生成对象. 但是用 jsonObject 和 ...

  8. 老罗Android开发视频教程( android解析json数据 )4集集合

    老罗Android开发视频教程( android解析json数据 )4集集合 老罗Android开发视频教程( android解析json数据 ) 第一集android解析json数据 http:// ...

  9. Java解析JSON数据

    Java解析JSON数据 1.什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式. 它基于 ECMAScript (欧洲计 ...

最新文章

  1. php要求掌握链表结构吗,PHP 链表结构之单链表(一)
  2. BeanShell中的Java指令和表达式
  3. 数据库跟缓存的双写一致性
  4. 关于Nginx的limit_conn模块的思考
  5. 3年,感谢你与几维安全一起经历的风风雨雨
  6. windows2008吃尽内存的解决办法
  7. SQL组合查询union
  8. 小米笔记本充电实测追求速度牺牲兼容性小米笔记本充电驱动_是海尔?也是雷神?不足1千克MixBook Air超轻薄笔记本...
  9. 程序员30多岁了还单身的原因
  10. 凸优化第八章几何问题 8.5 中心
  11. c++ 如何获取移动硬盘_M.2 NVMe固态移动硬盘如此DIY,零难度+低成本+速度快
  12. 深入浅出python机器学习——K最邻近算法(K-Nearest Neighbors,KNN)
  13. ansys linux 安装教程pdf,Deepin linux安装Ansys13详细教程.pdf
  14. 第六季 流放之路教程
  15. AndroidStudio 3.4更新了啥?
  16. HNUSTOJ-1621 Picking Cabbage(状态压缩DP)
  17. SpringCloud与微服务Ⅴ --- Eureka服务注册与发现
  18. 随手笔记之逆序输出数字
  19. 目标检测 YOLOv5 - ncnn模型的加密 C++实现封装库和Android调用库示例
  20. 分享几个 Github 镜像网站(亲测可用)

热门文章

  1. Javascript window.fetch API
  2. 面试官系统精讲Java源码及大厂真题 - 08 HashMap 源码解析
  3. CentOS系统Tomcat 8.5/9部署SSL证书
  4. 数据可视化组件Grafana详细解读--MacOSX上的安装
  5. cloudflare 批量域名ID
  6. JRebel Idea热更新插件
  7. 【Nginx那些事】nginx配置实例(一)反向代理
  8. 标称型数据和数值型数据_统计信息中的数据类型-标称,有序,间隔和比率数据类型,并举例说明
  9. 赠送300家门店260亿销售额的零售企业Power BI实战示例数据
  10. html 比 htm 的载入速度快,htm和html