爱打架的小白兔 2016-11-29 09:55 采纳率: 33.3%
浏览 7331
已采纳

JAVA如何获取本地.json文件并遍历

因为开发的原因,后期要测试,就在网上抓取了一些商品数据,并组成了json文件.然而我在从本地读取并遍历的时候,遇到了点问题.无法直接遍历,报错Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 2 column 2 path $
at com.google.gson.JsonParser.parse(JsonParser.java:65)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
at com.enation.framework.util.JsonUtil.parseJsonArray(JsonUtil.java:103)
at com.enation.framework.util.JsonUtil.toList(JsonUtil.java:43)
at com.enation.app.b2b2c.front.api.goods.InsertGoods.main(InsertGoods.java:136)
Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 2 column 2 path $
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1574)
at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1423)
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:546)
at com.google.gson.stream.JsonReader.peek(JsonReader.java:429)
at com.google.gson.JsonParser.parse(JsonParser.java:60)
... 4 more


```因为json文件中有特别多的数据,哪位大神有好点的方法,特别是有代码的话更好,万分感谢!

  • 写回答

6条回答 默认 最新

  • 爱打架的小白兔 2017-01-10 10:42
    关注

    最近一直比较忙,想起了以前的这个问题,就偶来做个总结.因为当时造成错误的原因是因为要在网站上添加很多的测试数据,人工添加的话,很不现实
    ,因为是一个全品类b2b2c的网站,各类数据都要有点.所以采用的最好的方法就是去抓数据,最开始的做法是将数据全部抓取下来,在本地保存成一个json
    文件,因为每个商品的信息都特别全,最后造成了本地的json文件数据量过大,一个json文件就有不到1G的内存,本地一旦读取的话就卡死,而且因为商品
    类型的不一样,造成 了商品数据的不规范,在解析读取的时候报各种错.

    最后想想了,又把读写的工具类改了下,每抓取一条数据,就进行解析,解析出错就跳过,抓取下一条,然后解析,测试了一些数据之后,将所有可能出现的不规范数据做了一个总结的判断,然后开始一边抓取,一边读写,虽然时间比较长,但是结果还是比较完美的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算