当读取json文件的时候,如果json文件巨大,比如json文件中有900万条数据,大小有300多M,就不可以一次把数据都读到内存再解析。
第一内存受不了,第二CPU更受不了,所有的硬件和软件都受不了。
需要一种边读取,边解析的json操作类,FastJson可以实现这个功能,实测这个速度还真是比较快。fastjson的下载地址:http://repo1.maven.org/maven2/com/alibaba/fastjson/
建议下载最新版本的fastjson
比如有下边一段json:
{
"array": [
1,
2,
3
],
"arraylist": [
{
"a": "b",
"c": "d",
"e": "f"
},
{
"a": "b",
"c": "d",
"e": "f"
},
{
"a": "b",
"c": "d",
"e": "f"
}
],
"object": {
"a": "b",
"c": "d",
"e": "f"
},
"string": "Hello World"
}
如果我们不一次性将其读到内存中进行解析,就要使用FastJson的JSONReader类,解析代码如下:
/**
* FastJson逐行解析json
* @author drlyee
* @date 2015-02-10
*/
public void ReadWithFastJson()
{
String jsonString = "{\"array\":[1,2,3],\"arraylist\":