开发者社区> 问答> 正文

fastjson序列化和反序列化问题。:报错

@wenshao 你好,想跟你请教个问题:

序列化生成文本代码:

package com.client;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSONWriter;

public class FileTest {
	public static void main(String[] args) throws IOException {
		
		List<String> list = new ArrayList<String>();
		
		for(int i=0;i<1000*1000;i++){
			list.add(i+"");
		}
		
		String path = "c:\\fastJson\\Test.JSON";
		File file = new File(path);
		if(!file.exists()){
			file.getParentFile().mkdirs();
		}
		JSONWriter writer = new JSONWriter(new FileWriter(file));
		
		writer.startArray();
		writer.writeObject(list);
		writer.endArray();
		writer.close();
		
	}
}

反序列化读取文本代码:

package com.client;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSONReader;

public class ReaderTest {
	public static void main(String[] args) throws FileNotFoundException {
		String path = "c:\\fastJson\\Test.JSON";
		JSONReader reader = new JSONReader( new FileReader(new File(path)));
		
		List<String> list = new ArrayList<String>();
		
		reader.startArray();
		list = reader.readObject(List.class);
		reader.endArray();
		reader.close();
		
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
	}
}

生成文档如图:

抛出异常代码:



被这个问题纠结了一天了。。。。。。

展开
收起
kun坤 2020-06-07 20:53:06 951 0
1 条回答
写回答
取消 提交回答
  • list = reader.readObject(List.class);这是不是该用list = reader.readObject(String.class);。我猜的,你试试######刚试过,任然不行。######

    程序一直抛下标越界异常,然后我就固定list的size大小,

    当list长度为1328时,生成文本后,再用JSONReader解析是不会抛出异常的,

    如图:

    当list长度为1329时,就会抛出异常

    如图:

    ######

    友情帮顶。


    ######谢谢。######问题在跟进中######谢谢温少。######

    问题已经修复了:

    http://code.alibabatech.com/mvn/snapshots/com/alibaba/fastjson/1.1.35-SNAPSHOT/

    请帮忙测试一下

    ######温少已经测试过,没有问题了,谢谢你。######

    将长度为100000000的list列表通过fastJson转换成文本:

    解析list文本通过fastJson:

    ######测试了下fastjson,集合大小为3610,集合里面对象有30个属性,fastjson 要4s,gson1秒
    2020-06-07 20:53:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载