真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何用fastjson處理超大對(duì)象和超大JSON文本

這篇文章主要講解了“如何用fastjson處理超大對(duì)象和超大JSON文本”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何用fastjson處理超大對(duì)象和超大JSON文本”吧!

創(chuàng)新互聯(lián)公司專(zhuān)注于瀏陽(yáng)企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),成都商城網(wǎng)站開(kāi)發(fā)。瀏陽(yáng)網(wǎng)站建設(shè)公司,為瀏陽(yáng)等地區(qū)提供建站服務(wù)。全流程按需定制開(kāi)發(fā),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

來(lái)看一下示例代碼:

示例對(duì)象:

package json.fastjson.StreamApi;import java.util.HashMap;import java.util.Map;public class VO {private int id;private Map attributes = new HashMap();public VO(int id) {super();this.id = id;
    }public int getId() {return id;
    }public void setId(int id) {this.id = id;
    }public Map getAttributes() {return attributes;
    }@Overridepublic String toString() {return "VO [id=" + id + ", attributes=" + attributes + "]";
    }
}
一、序列化

1.1、超大JSON數(shù)組序列化

如果你的JSON格式是一個(gè)巨大的JSON數(shù)組,有很多元素,則先調(diào)用startArray,然后挨個(gè)寫(xiě)入對(duì)象,然后調(diào)用endArray。

測(cè)試類(lèi):

package json.fastjson.StreamApi;import java.io.FileWriter;import java.io.IOException;import com.alibaba.fastjson.JSONWriter;public class TestHugeArraySerialize {public static void main(String[] args) throws IOException {
        JSONWriter writer = new JSONWriter(new FileWriter("hugeArray.json"));
        writer.startArray();for (int i = 0; i < 10; ++i) {
            writer.writeValue(new VO(i));
        }
        writer.endArray();
        writer.close();
    }

}

輸出結(jié)果:

程序運(yùn)行之后會(huì)產(chǎn)生一個(gè)文件:

如何用fastjson處理超大對(duì)象和超大JSON文本

文件內(nèi)容:

[{"attributes":{},"id":0},{"attributes":{},"id":1},{"attributes":{},"id":2},{"attributes":{},"id":3},{"attributes":{},"id":4},{"attributes":{},"id":5},{"attributes":{},"id":6},{"attributes":{},"id":7},{"attributes":{},"id":8},{"attributes":{},"id":9}]
  • 1

1.2、超大JSON對(duì)象序列化

如果你的JSON格式是一個(gè)巨大的JSONObject,有很多Key/Value對(duì),則先調(diào)用startObject,然后挨個(gè)寫(xiě)入Key和Value,然后調(diào)用endObject。

測(cè)試類(lèi):

package json.fastjson.StreamApi;import java.io.FileWriter;import java.io.IOException;import com.alibaba.fastjson.JSONWriter;public class TestHugeObjectSerialize {public static void main(String[] args) throws IOException {

        JSONWriter writer = new JSONWriter(new FileWriter("hugeObject.json"));
        writer.startObject();for (int i = 0; i < 10; ++i) {
            writer.writeKey("x" + i);
            writer.writeValue(new VO(i));
        }
        writer.endObject();
        writer.close();
    }

}

輸出結(jié)果:

程序運(yùn)行之后會(huì)產(chǎn)生一個(gè)文件:

這里寫(xiě)圖片描述

文件內(nèi)容:

{"x0":{"attributes":{},"id":0},"x1":{"attributes":{},"id":1},"x2":{"attributes":{},"id":2},"x3":{"attributes":{},"id":3},"x4":{"attributes":{},"id":4},"x5":{"attributes":{},"id":5},"x6":{"attributes":{},"id":6},"x7":{"attributes":{},"id":7},"x8":{"attributes":{},"id":8},"x9":{"attributes":{},"id":9}}
  • 1

二、反序列化

2.1、超大JSON數(shù)組反序列化

測(cè)試類(lèi):

package json.fastjson.StreamApi;import java.io.FileReader;import java.io.IOException;import com.alibaba.fastjson.JSONReader;public class TestHugeArrayDeserialize {public static void main(String[] args) throws IOException {// 讀入上面輸出的文件JSONReader reader = new JSONReader(new FileReader("hugeArray.json"));
        reader.startArray();while (reader.hasNext()) {
            VO vo = reader.readObject(VO.class);
            System.out.println(vo);
        }
        reader.endArray();
        reader.close();
    }

}

輸出結(jié)果:

VO [id=0, attributes={}]VO [id=1, attributes={}]VO [id=2, attributes={}]VO [id=3, attributes={}]VO [id=4, attributes={}]VO [id=5, attributes={}]VO [id=6, attributes={}]VO [id=7, attributes={}]VO [id=8, attributes={}]VO [id=9, attributes={}]

2.2、超大JSON對(duì)象反序列化

測(cè)試類(lèi):

package json.fastjson.StreamApi;import java.io.FileReader;import java.io.IOException;import com.alibaba.fastjson.JSONReader;public class TestHugeObjectDeserialize {public static void main(String[] args) throws IOException {// 讀入上面輸出的文件JSONReader reader = new JSONReader(new FileReader("hugeObject.json"));
        reader.startObject();while (reader.hasNext()) {
            String key = reader.readString();
            VO vo = reader.readObject(VO.class);
            System.out.println(key + ":" + vo);
        }
        reader.endObject();
        reader.close();
    }

}

輸出結(jié)果:

x0:VO [id=0, attributes={}]x1:VO [id=1, attributes={}]x2:VO [id=2, attributes={}]x3:VO [id=3, attributes={}]x4:VO [id=4, attributes={}]x5:VO [id=5, attributes={}]x6:VO [id=6, attributes={}]x7:VO [id=7, attributes={}]x8:VO [id=8, attributes={}]x9:VO [id=9, attributes={}]

感謝各位的閱讀,以上就是“如何用fastjson處理超大對(duì)象和超大JSON文本”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何用fastjson處理超大對(duì)象和超大JSON文本這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


分享文章:如何用fastjson處理超大對(duì)象和超大JSON文本
網(wǎng)站鏈接:http://weahome.cn/article/pcgees.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部