我想把一个arraylist存到磁盘,所以我用gson把它转成stringArrayListanim=newArrayList();Catc=newCat();Dogd=newDog();c.parentName="IamanimalC";c.subNameC="Iamcat";d.parentName="IamanimalD";d.subNameD="Iamdog";anim.add(c);anim.add(d);Gsongson=newGson();Stringjson=gson.toJson(anim);publicclassAnimal{publicStringparentNa
我正在尝试将JSONArray反序列化为列表。为此,我正在尝试使用Gson,但我不明白为什么不起作用,而且JSON的所有值都为空。我该怎么做?JSON{"result":[{"Noticia":{"created":"2015-08-2019:58:49","descricao":"tttttt","id":"19","image":null,"titulo":"ddddd","usuario":"FERNANDOPAIVA"}},{"Noticia":{"created":"2015-08-2019:59:57","descricao":"hhhhhhhh","id":"20","i
我正在使用Gson解析简单的JSON对象。我希望它在键名重复时抛出一些错误。例如{a:2,a:3}在我的例子中,Gson解析这样的JSON并将a设置为3。我希望它抛出一些异常。我知道我可以将JSON解析为映射,然后Gson在这种情况下抛出异常,但前提是重复的键没有嵌套在映射中。如果我有例如像这样的JSON:{a:2,b:{dup:1,dup:2}}仍然,它毫无异常(exception)地被解析,我只有一个值为2的“dup”。在这种情况下,我能否以某种方式设置Gson以抛出错误?或者在JsonObject实例中有重复的条目,这样我就可以自己检测到它(但我对此表示怀疑,因为它是无效的Jso
我有以下POJO:publicinterfaceShape{publicdoublecalcArea();publicdoublecalcPerimeter();}publicclassRectangleimplementShape{//Variouspropertiesofarectangle}publicclassCircleimplementsShape{//Variouspropertiesofacircle}publicclassShapeHolder{privateListshapes;//otherstuff}让GSON将ShapeHolder实例序列化为JSON没有问题
在服务器端我得到了这个API(示例)(我不能修改它。)namespaceMyNameSpace{[Serializable][DataContract]publicclassGetMyObject{[DataMember]publicDictionaryMyDictionary{get;set;}}}然后服务器发送这个JSON:{"MyDictionary":[{"Key":1,"Value":1},{"Key":2,"Value":2},{"Key":3,"Value":3},{"Key":4,"Value":4}]}在客户端,我必须创建这些类以进行正确的反序列化:classGetM
尝试序列化包含java.nio.file.Path的Object时出现java.lang.StackOverflowError即使我写:publicclassPathConverterimplementsJsonDeserializer,JsonSerializer{@OverridepublicPathdeserialize(JsonElementjsonElement,Typetype,JsonDeserializationContextjsonDeserializationContext)throwsJsonParseException{returnPaths.get(jsonE
我想使用GSON来反序列化:"starterItems":{"Appeltaart":3,"Soap_50":3}...进入GuavaImmutableMap:privateImmutableMapstarterItems;我以为我会使用常规的GSON映射解析,然后制作结果的不可变副本,如下所示:gb.registerTypeAdapter(ImmutableMap.class,newJsonDeserializer(){@SuppressWarnings("unchecked")@OverridepublicImmutableMapdeserialize(JsonElementjso
下面的方法完美运行publicvoidfromJsonArray(StringjsonString,TypetToken){Gsong=newGson();Tlist=g.fromJson(jsonString,tToken);System.out.println(list);}但是我没有指定这个方法中的是什么。编译器如何分配fromJson返回的值变量的方法list我没有指定谁的类型?我刚刚测试了有关的答案的有效性从方法的返回类型推断。好像不行。请检查以下代码。它甚至不编译importjava.util.*;classSample{publicListgetT(Strings){Li
我有一个JsonObject例如JsonObjectjsonObject={"keyInt":2,"keyString":"val1","id":"0123456"}每个JsonObject都包含一个"id"条目,但其他键/值对的数量未确定,所以我想创建一个具有2个属性的对象:classmyGenericObject{Mapattributes;Stringid;}所以我希望我的属性映射看起来像这样:"keyInt"->4711"keyStr"->"val1"我找到了这个解决方案Mapattributes=newHashMap();Set>entrySet=jsonObject.ent
在使用Gson的fromJson方法时,是否可以使用给定类的set方法?我想这样做是因为对于目标类的每个String全局变量都会进行修剪。是否有任何GSONAPI注释?我知道GSON提供了编写自定义序列化器/反序列化器的能力,但我想知道是否有其他方法可以实现这一点。 最佳答案 没有,没有。Gson主要通过实例字段的反射来工作。因此,如果您不打算搬到具有此功能的jackson,我认为您无法通过通用方式来调用您的二传手。所以没有注释。但是为了满足您的特定需求,您可以:写你自己的习惯TypeAdapter或创建一个包含您要修剪的字符串的构