草庐IT

java - 当文件大小 > 1GB 时,Gson.toJson 抛出 NullPointerException

我尝试用Java写入Json格式,但在文件大小>1GB时遇到NullPointerException。谁能帮我解决这个问题?代码不断生成Json文件,文件大小不断增加。一旦文件大小>1GB,代码将抛出异常,如下所示。我使用不同的数据集进行测试,所以我不认为这是数据问题。我的猜测是Java中的Gson.toJson有大小限制。我的代码是:privateHashMap>tokenCounter=newHashMap>();....privatevoidwriteToFile(){try{PrintWriterout=newPrintWriter(outputFileName);out.pr

java - 如何在反序列化对象中保留字段的默认值?

我的情况如下:对象TableC有4个字段。从JSON字符串中仅读取3个字段(field_C1、field_C2和field_C3)。第四个字段field_C4在具有默认值的对象中定义。当我序列化对象实例(用于输出)时-它忽略字段field_C4,我期望默认值为"1"或"null“。当我将程序中的实例字段的值显式定义为"NEW"时,它确实将其包含在Json输出字符串中。查看输出,在反序列化过程中创建对象实例时,构造函数似乎也被忽略了。激活对象实例的其他字段的最佳做法是什么-这些字段未包含在输入Json字符串的反序列化版本中?packagenewpackage;importjava.uti

java - Gson:序列化 java.nio.Path 导致 StackOverflowError

序列化它,导致StackOverFlowError:importjava.nio.file.Path;importjava.nio.file.Paths;publicclassTmp{privatePathpath=null;publicTmp(){path=Paths.get("c:\\temp\\");}}在我看来这像是一个错误!或者我做错了什么?是否有解决方法(期望编写一些将路径转换为字符串的自定义序列化程序)java.lang.StackOverflowErroratcom.google.gson.internal.$Gson$Types.resolve($Gson$Types

java.sql.Time 异常

有人遇到过这样的事情吗?切换到JAVA9后我遇到了这样的问题Causedby:java.lang.NoClassDefFoundError:java/sql/Timeatcom.google.gson.Gson.(Gson.java:240)atcom.google.gson.GsonBuilder.create(GsonBuilder.java:569)atnet.thucydides.core.reports.json.gson.GsonJSONConverter.(GsonJSONConverter.java:50)atnet.thucydides.core.reports.js

java - 如何正确处理重要的未检查异常

我正在编写一个包含RESTAPI的库。我正在创建的包装器使用GSON将json反序列化为我的对象。基本上,像这样...publicPostgetPost(url)throwsIOException{StringjsonString=httpClient.get(url);Postp=gson.fromJson(jsonString,Post.class);//returnPosttoclientandletclientdosomethingwithit.}如果我没理解错的话,IOException是一个checkedexception。我告诉我的客户:嘿,伙计-你最好小心并从这个异常中

java - java中json文档中叶节点的所有路径的输出列表

例如:给定这个json文档:{"store":{"book":[{"category":"reference","author":"NigelRees","title":"SayingsoftheCentury","price":8.95},{"category":"fiction","author":"HermanMelville","title":"MobyDick","isbn":"0-553-21311-3","price":8.99},],"bicycle":{"color":"red","price":19.95}},"expensive":10}我想产生(类似于)这个输出

java - Moshi - 解析未知的 json 键

我如何使用moshi解析一个在编译时具有未知键的json结构:"foo":{"name":"hello","bar":{"unknownKey1":{"a":"1"}},"unknownKey2":{"b":"2"},"unknownKeyX":{"c":"X"}},"properties":{...}}我尝试为JSONObject使用@FromJson适配器,但日志只是说json是空的{}(我希望的是{"unknownKey1":{...等等...})classFoo{@Json(name="name")Stringname;@Json(name="bar")Barbar;stati

java - Gson fromJson反序列化泛型

在开发Android应用程序时,我遇到了一个问题,当时我想制作一个最终的通用方法来发送HTTP请求(使用loopj)并反序列化它们(使用Gson)。正如您在使用gson.fromJson时可能知道的,您不能这样做:gson.fromJson(responseBody,newTypeToken(){}.getType());或gson.fromJson(responseBody,newTypeToken>(){}.getType())您将获得LinkedTreeMap对象(或LinkedTreeMap对象)。如果您仍然想要反序列化通用类型对象(-s),请参阅下面的答案。+Bonus:lo

java - 阻止 GSON 序列化 JSON 字符串

我是gson的新手,有一个我还没有找到答案的newby问题,所以请多多包涵。StackOverflow和谷歌不是我的friend:(我有一个java类“User”,它的属性之一“externalProfile”是一个包含已序列化JSON的Java字符串。当gson序列化User对象时,它会将externalProfile视为原始类型,从而转义JSON添加额外的斜杠等。我希望gson单独保留字符串,只是“按原样”使用它,因为它已经是有效且可用的JSON。为了区分JSON字符串,我创建了一个名为JSONString的简单类,我尝试使用读取器/写入器、registerTypeAdapter,

Java:Gson 和编码

我在需要通过HttpPostBody传递的Gson中使用变音符号(ä,ü,ö)。不幸的是,如果变音符号没有以某种方式转换,我的网络应用程序将返回null,而事实并非如此。内容类型是“application/json”我如何告诉Gson正确编码变音符号(变音符号在值中,而不是键中)? 最佳答案 我在将变音符号传递给JSON中的Web服务时遇到了同样的问题。网络服务器无法正确解码这些字符。通过为UTF编码配置HttpClient,问题消失了,这是我的工作代码:HttpParamshttpParams=newBasicHttpParams