使用Play框架,我通过GSON序列化我的模型。我指定哪些字段是公开的,哪些不公开。这很好用,但我也想@expose方法。当然,这也太简单了。我该怎么做?感谢您的帮助!publicclassAccountextendsModel{@ExposepublicStringusername;@ExposepublicStringemail;publicStringpassword;@Expose//Ofcourse,thisdon'tworkpublicStringgetEncodedPassword(){//...}} 最佳答案 我遇到
我有一些JSON正在使用Gson反序列化。{"resp":{"posts":[{..."public":true,...}]}我的问题是public是一个Java关键字,那么如何在我的类中创建一个与JSON中的public字段相关的字段? 最佳答案 您可以为您的字段使用不同的名称,使用gson的FieldNamingSupport.publicclassPost{@SerializedName("public")privatebooleanisPublic;...} 关于java-Gso
我必须将Json对象与具有Date的java对象绑定(bind)。我的Json上的日期格式如下:2013-01-04T10:50:26+0000我使用GsonBulder如下:Gsongson=newGsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create();但我得到以下异常:TheRuntimeExceptioncouldnotbemappedtoaresponse,re-throwingtotheHTTPcontainercom.google.gson.JsonSyntaxException:2013-01-04T1
我正在为教育目的制作一个简单的RetroFit应用程序,并使用IntelliJIDEA作为我的IDE。我已经正确导入了Retrofit库(至少我认为我已经导入了),但我无法获得GsonConverter包。我安装了来自google的gson.jar,但在这两个库中都没有一个名为“GsonConverterFactory”的类,这是我解析JSON所必需的。编辑:我在Windows上。 最佳答案 添加compile'com.squareup.retrofit:converter-gson:2.0.0-beta2'给您的build.gra
我有这个枚举:enumRequestStatus{OK(200),NOT_FOUND(400);privatefinalintcode;RequestStatus(intcode){this.code=code;}publicintgetCode(){returnthis.code;}};在我的请求类中,我有这个字段:privateRequestStatusstatus。当使用Gson将Java对象转换为JSON时,结果如下:"status":"OK"如何更改我的GsonBuilder或我的Enum对象以提供如下输出:"status":{"value":"OK","code":200}
我找不到在Gson序列化期间添加自定义字段的简单方法,我希望其他人可以提供帮助。这是一个展示我的问题的示例类:publicclassA{Stringid;Stringname;...}当我序列化A类时,我想返回如下内容:{"id":"123","name":"JohnDoe","url_to_user":"http://www.example.com/123"}其中url_to_user不存储在我的A类实例中,但可以使用A类实例中的数据生成。有没有一种简单的方法可以做到这一点?我宁愿避免仅仅为了添加一个字段而编写整个序列化程序。 最佳答案
我有一个枚举:enumType{LIVE,UPCOMING,REPLAY}还有一些JSON:{"type":"live"}还有一个类(class):classEvent{Typetype;}当我尝试使用GSON反序列化JSON时,我收到Event类型字段的null,因为JSON中类型字段的大小写不匹配枚举的那个。Eventsevents=newGson().fromJson(json,Event.class);如果我将枚举更改为以下,那么一切正常:enumType{live,upcoming,replay}但是,我想将枚举常量全部保留为大写。我假设我需要编写一个适配器,但没有找到任何好
我的服务器JSON返回两种不同类型的DateFormat。"MMMdd,yyyy"和"MMMdd,yyyyHH:mm:ss"当我使用以下内容转换JSON时,这很好:Gsongson=newGsonBuilder().setDateFormat("MMMdd,yyyy").create();但是当我想要详细的日期格式并将其更改为此时,它会抛出异常com.google.gson.JsonSyntaxException:Mar21,2013Gsongson=newGsonBuilder().setDateFormat("MMMdd,yyyyHH:mm:ss").create();gson有没
Strings="m\\"+"/m\\/m/m/m/m/m";LinkedHashMaphm=newLinkedHashMap();hm.put("test",s);System.out.println(hm+"Hashmap="+hm.toString());精细输出为{test=m\/m\/m/m/m/m/m}Hashmap={test=m\/m\/m/m/m/m/m}Strings2=newGson().toJson(hm.toString());System.out.println("Jsonresultis"+s2);不好输出是Json结果是"{test\u003dm\\/m
有没有办法将包含json的String转换为HashMap,其中每个key都是json-key,value是json-key的值?json没有嵌套值。我正在使用Gson库。例如,给定JSON:{"id":3,"location":"NewYork"}生成的HashMap:谢谢 最佳答案 使用TypeToken,根据theGSONFAQ:Gsongson=newGson();TypestringStringMap=newTypeToken>(){}.getType();Mapmap=gson.fromJson(json,stringS