使用Java解析较大json

解析json时遇到特别长的json 超过了Java字符串的最大长度,可以使用文件流来获取json字符串 代码如下:
用到了gson依赖,自己想办法下载吧

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;

public class JsonUtil {
    public static void main(String[] args) {
        try {
            String localFile="d:/page3.txt";
            StringBuffer stringbuffer =new StringBuffer();
            String lineTxt = null;
            InputStreamReader read= new InputStreamReader( new FileInputStream(localFile),"UTF-8");
            BufferedReader bufferedReader = new BufferedReader(read);
            while((lineTxt = bufferedReader.readLine()) != null){
                stringbuffer.append(lineTxt);
            }
            JsonObject Jarray = AnalysisBigJson(stringbuffer.toString());
            JsonArray jsonArray_2 = Jarray.getAsJsonArray("rows");
            for(int i2 = 0;i2 < jsonArray_2.size();i2 ++){
                JsonElement jsonObj_2 = jsonArray_2.get(i2);
                System.out.println(jsonObj_2.getAsJsonObject().get("topicName"));
                System.out.println(jsonObj_2.getAsJsonObject().get("guideTeacher").getAsJsonObject().get("_toString"));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public static JsonObject AnalysisBigJson(String content){
        JsonParser parser = new JsonParser();
        JsonObject Jarray = parser.parse(content).getAsJsonObject();
        return Jarray;
    }
}

发布了41 篇原创文章 · 获赞 1 · 访问量 928

猜你喜欢

转载自blog.csdn.net/DreamCloud714/article/details/103604054