草庐IT

java - Gson、JSON 和 LinkedTreeMap 的精妙之处

我最近开始研究JSON字符串,有人告诉我Google自己的库Gson是处理这些字符串的新潮方式。我的理解是,JSON字符串本质上是一张map。其中每个变量指向字符串中的一个值。例如:StringjsonInput2="{\"created_at\":\"SatFeb0815:37:37+00002014\",\"id\":432176397474623489\"}到目前为止,一切都很好。可以使用以下代码将诸如此JSON字符串创建时间之类的信息分配给变量:Gsongson=newGson();Mapmap=newHashMap();map=(Map)gson.fromJson(jsonI

java - 如何使用 Google GSON 将 JSON 数组反序列化为通用类型的集合?

这个问题在这里已经有了答案:GsonTypeTokenwithdynamicArrayListitemtype(13个答案)关闭5年前。我正在编写一些代码,用于从网站检索资源。它看起来像这样:publicCollectiongetProjects(){Stringjson=getJsonData(methods.get(Project.class));//Getsajsonlist,ie[1,2,3,4]Gsongson=newGson();TypecollectionType=newTypeToken>(){}.getType();returngson.fromJson(json,c

java - Gson 强制使用 int 而不是 double

你好我可以配置gson他使用int而不是doublegot数据如:{fn:chat,data:{roomId:1,text:"Somebrabble"}}我有一个PacketClass将其反序列化为:publicclassDataPacket{privateStringfn;privateObjectp;//willbeaStringMap}并像这样解码:DataPacketpkg=gson.fromJson(message,DataPacket.class);为了更好的类型处理,我得到了DataPacket.p字段的数据pojo,例如:publicclassChatPacket{pu

com.google.gson.Gson.newJsonWriter 上的 Retrofit 2 的 java.lang.IllegalAccessError

如何找出导致此IllegalAccessError问题的原因?感谢您的帮助。我已经遵循了一些修复/解决方法并使用了Maven的Gson2.8。这是部分Maven配置:com.squareup.retrofit2converter-gson2.2.0com.google.code.gsongsoncom.google.code.gsongson2.8.0和完整的堆栈跟踪:java.lang.IllegalAccessError:triedtoaccessmethodcom.google.gson.Gson.newJsonWriter(Ljava/io/Writer;)Lcom/googl

java - 当要解析的元素是 json 字符串的元素时,使用 gson 解析 json 的最简单方法是什么?

我正在使用gson将json解析为javabean。对于我使用的API,大量的json结果包括result作为json对象的第一个属性。“gson方式”似乎是创建一个等效的包装器java对象,它具有一个用于目标输出类型的属性——但这会导致不必要的一次性类。是否有执行此操作的最佳实践方法?例如解析:{"profile":{"username":"nickstreet","first_name":"Nick","last_name":"Street"}}我必须做的:publicclassParseProfileextendsTestCase{publicvoidtestParseProfi

java - 使用 Gson 解析 JSON 映射/字典?

我需要解析如下所示的JSON响应:{"key1":"value1","key2":"value2","key3":{"childKey1":"childValue1","childKey2":"childValue2","childKey3":"childValue3"}}classEgg{@SerializedName("key1")privateStringmKey1;@SerializedName("key2")privateStringmKey2;@SerializedName("key3")//???}我正在通读Gson文档,但无法弄清楚如何正确地将字典反序列化为Map。

java - 用GSON解析JSON,对象有时包含列表有时包含对象

我正在使用有时包含子对象列表的API:{'obj':{children:[{id:"1"},{id:"2"}]}}我可以解析这个没问题。但如果只有一个child,它不会将其作为列表返回:{'obj':{children:{id:"1"}}}我的解析器期望一个列表然后中断。有人对如何处理这个问题有建议吗? 最佳答案 对于Gson,我知道如何处理这种情况的唯一方法是使用自定义反序列化器。例如://outputs://[Container:obj=[ChildContainer:children=[[Child:id=1],[Child:

java - 使用 GSON 序列化 JavaFX 模型

我目前正在学习一个教程来帮助我了解JavaFX的工作原理,并且在教程中他们正在构建一个小应用程序来管理人们的信息。本教程还使用XML进行加载/保存,但我不想使用XML,而是想使用JSON。我有一个使用StringProperty、IntegerProperty和ObjectProperty的Person模型。我的问题是,我不确定加载和保存它的最佳方式是什么而不保存不必要的字段并且加载时Gson不会抛出错误。人importjava.time.LocalDate;importjavafx.beans.property.IntegerProperty;importjavafx.beans.p

java - 优化 Gson 反序列化

优化反序列化的最佳方法是什么?我目前正在使用标准的Gson.toJson和Gson.fromJson方法对一些复杂对象进行序列化和反序列化,我希望尽可能减少反序列化时间。如果重要的话,我的对象中最复杂的包含43个变量。 最佳答案 如果你想使用Gson,而不是切换到另一个Java-to/from-JSONAPI,并且如果Gson的自动数据绑定(bind)性能不够好,那么可以继续使用GsonAPI,并且挤出一些适度更好的性能。在https://github.com/eishay/jvm-serializers/wiki发布的最新一轮性能

java - 使用 Gson 添加现有的 json 字符串

我有一个包含任意json的字符串对象。我想将它包装在另一个json对象中,如下所示:{version:1,content:>>arbitrary_json_string_object我如何才能可靠地将我的json字符串作为属性添加到它而无需手动构建它(即避免繁琐的字符串连接)?classWrapper{intversion=1;}gson.toJson(newWrapper())//Thenwhat?请注意,添加的json应该不被转义,而是作为有效的json实体作为包装器的一部分,如下所示:{version:1,content:["thecontent",{name:"fromtheS