解析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;
}
}