fastjson解析JSON数据乱序导致的问题

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

未经本人允许禁止转载。

文章目录

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

问题背景

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

JSONObject jsonfile = JSONObject.parseObject(standardJson);

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

fastjson解析JSON数据乱序导致的问题_第1张图片
格式化的JSON文件为:

fastjson解析JSON数据乱序导致的问题_第2张图片

在采集多页数据时,使用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

你可能感兴趣的:(java,基于java网络爬虫)