@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));
}
}
}
生成文档如图:
抛出异常代码:
被这个问题纠结了一天了。。。。。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
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:
