Questions tagged «gson»

Gson是Google的开源库,用于将Java对象与JSON进行序列化和反序列化。

30
Android Studio:将jar添加为库?
我正在尝试使用新的Android Studio,但似乎无法正常工作。 我正在使用Gson库对JSON对象进行序列化/反序列化。但是该库不包含在构建中。 我仅使用MainActivity创建了一个新项目。在/ libs文件夹中复制gson-2.2.3.jar,并将其添加为库依赖项(右键单击->添加为库)。这包括android studio中的jar,因此可以从源文件中引用它。 当我尝试运行项目时,它无法编译,因此我添加了: compile files('libs/gson-2.2.3.jar') .gradle文件中的依赖项。之后,它可以正确编译,但是在运行应用程序时出现错误消息ClassDefNotFoundException。 有人知道我在做什么错吗?

13
Google Gson-反序列化list <class>对象?(通用类型)
我想通过Google Gson传输列表对象,但是我不知道如何反序列化泛型类型。 在查看此内容后我尝试了什么(BalusC的答案): MyClass mc = new Gson().fromJson(result, new List&lt;MyClass&gt;(){}.getClass()); 但是然后我在日食中遇到了一个错误,说“新的List(){}类型必须实现继承的抽象方法...”,如果我使用快速修复方法,则会得到20个以上的方法存根的怪物。 我很确定有一个更简单的解决方案,但是我似乎找不到它! 编辑: 我现在有 Type listType = new TypeToken&lt;List&lt;MyClass&gt;&gt;() { }.getType(); MyClass mc = new Gson().fromJson(result, listType); 但是,在“ fromJson”行中确实得到以下异常: java.lang.NullPointerException at org.apache.harmony.luni.lang.reflect.ListOfTypes.length(ListOfTypes.java:47) at org.apache.harmony.luni.lang.reflect.ImplForType.toString(ImplForType.java:83) at java.lang.StringBuilder.append(StringBuilder.java:203) at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:56) at com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:88) at com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:76) at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:106) at com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:64) at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:49) at com.google.gson.Gson.fromJson(Gson.java:568) …
440 java  json  generics  gson 

7
表示JSON中的null
在JSON中返回空值的首选方法是什么?对基元有不同的偏好吗? 例如,如果我在服务器上的对象具有一个名为“ myCount”的无值的整数,则该值的最正确的JSON为: {} 要么 { "myCount": null } 要么 { "myCount": 0 } 字符串的相同问题-如果我在服务器上使用空字符串“ myString”,则是最好的JSON: {} 要么 { "myString": null } 要么 { "myString": "" } 或(上帝帮我) { "myString": "null" } 我喜欢将集合以JSON形式表示为空集合的约定http://jtechies.blogspot.nl/2012/07/item-43-return-empty-arrays-or.html 空数组将被表示: { "myArray": [] } 编辑摘要 “个人偏爱”的论点似乎是现实的,但在短期内,作为一个社区,我们将消耗越来越多的不同服务/资源。JSON结构的约定将有助于规范所述服务的使用和重用。至于建立标准,我建议采用大多数Jackson公约,但有一些例外: 对象优于基元。 空集合优先于null。 没有值的对象表示为null。 基元返回其值。 如果您要返回一个大多数为空值的JSON对象,则可能有一个候选者可以重构为多个服务。 { "value1": null, "value2": null, …
422 json  jackson  gson 

15
Gson:如何从没有注释的序列化中排除特定字段
Наэтотвопросестьответына 堆栈溢出нарусском:ИсключитьполеприсериализацииилидесериализациивGSON 我正在尝试学习Gson,并且在领域排除方面苦苦挣扎。这是我的课 public class Student { private Long id; private String firstName = "Philip"; private String middleName = "J."; private String initials = "P.F"; private String lastName = "Fry"; private Country country; private Country countryOfBirth; } public class Country { private Long id; private String name; private Object other; …
413 java  json  serialization  gson 

5
杰克逊诉 格森[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 在搜索了一些现有库的JSON之后,我最终得到了这两个: 杰克逊 谷歌GSon 我对GSON有点偏爱,但网上有消息说GSon受到某些天体性能问题的困扰(截至2009年9月)。 我正在继续我的比较;同时,我正在寻找帮助下定决心。
363 java  json  comparison  gson  jackson 

9
Gson:直接将String转换为JsonObject(无POJO)
似乎无法弄清楚。我正在GSON中尝试JSON树操作,但是在转换为之前,我不知道或没有POJO将字符串转换为的情况JsonObject。是否有办法直接从a String转到JsonObject? 我尝试了以下(Scala语法): val gson = (new GsonBuilder).create val a: JsonObject = gson.toJsonTree("""{ "a": "A", "b": true }""").getAsJsonObject val b: JsonObject = gson.fromJson("""{ "a": "A", "b": true }""", classOf[JsonObject]) 但a失败,JSON被转义并解析为JsonString唯一,并 b返回一个empty JsonObject。 有任何想法吗?
300 java  json  gson 

9
GSON抛出“预期是BEGIN_OBJECT,但是是BEGIN_ARRAY”?
我正在尝试解析这样的JSON字符串 [ { "updated_at":"2012-03-02 21:06:01", "fetched_at":"2012-03-02 21:28:37.728840", "description":null, "language":null, "title":"JOHN", "url":"http://rus.JOHN.JOHN/rss.php", "icon_url":null, "logo_url":null, "id":"4f4791da203d0c2d76000035", "modified":"2012-03-02 23:28:58.840076" }, { "updated_at":"2012-03-02 14:07:44", "fetched_at":"2012-03-02 21:28:37.033108", "description":null, "language":null, "title":"PETER", "url":"http://PETER.PETER.lv/rss.php", "icon_url":null, "logo_url":null, "id":"4f476f61203d0c2d89000253", "modified":"2012-03-02 23:28:57.928001" } ] 进入对象列表。 List&lt;ChannelSearchEnum&gt; lcs = (List&lt;ChannelSearchEnum&gt;) new Gson().fromJson( jstring , ChannelSearchEnum.class); 这是我正在使用的对象类。 import com.google.gson.annotations.SerializedName; public class ChannelSearchEnum { …
295 java  android  gson 

16
如何使用Gson将JSON转换为HashMap?
我正在从返回JSON格式数据的服务器请求数据。发出请求时,将HashMap转换为JSON并不困难,但另一种方式似乎有些棘手。JSON响应如下所示: { "header" : { "alerts" : [ { "AlertID" : "2", "TSExpires" : null, "Target" : "1", "Text" : "woot", "Type" : "1" }, { "AlertID" : "3", "TSExpires" : null, "Target" : "1", "Text" : "woot", "Type" : "1" } ], "session" : "0bc8d0835f93ac3ebbf11560b2c5be9a" }, "result" : "4be26bc400d3c" …
285 java  json  dictionary  hashmap  gson 

12
将JSON数据转换为Java对象
我希望能够从Java操作方法中的JSON字符串访问属性。只需说一下即可使用该字符串myJsonString = object.getJson()。以下是该字符串的示例: { 'title': 'ComputingandInformationsystems', 'id': 1, 'children': 'true', 'groups': [{ 'title': 'LeveloneCIS', 'id': 2, 'children': 'true', 'groups': [{ 'title': 'IntroToComputingandInternet', 'id': 3, 'children': 'false', 'groups': [] }] }] } 在此字符串中,每个JSON对象都包含其他JSON对象的数组。目的是提取ID列表,其中任何给定对象都具有包含其他JSON对象的group属性。我将Google的Gson视为潜在的JSON插件。谁能提供某种形式的指导,说明如何从此JSON字符串生成Java?
262 java  json  jackson  gson 

7
Gson-从Json转换为类型化ArrayList <T>
使用Gson库,如何将JSON字符串转换ArrayList为自定义类的JsonLog?基本上,这JsonLog是由我的Android应用创建的各种日志(SMS日志,通话日志,数据日志)实现的界面,这ArrayList是所有这些的集合。我在第6行中不断收到错误消息。 public static void log(File destination, JsonLog log) { Collection&lt;JsonLog&gt; logs = null; if (destination.exists()) { Gson gson = new Gson(); BufferedReader br = new BufferedReader(new FileReader(destination)); logs = gson.fromJson(br, ArrayList&lt;JsonLog&gt;.class); // line 6 // logs.add(log); // serialize "logs" again } } 看来编译器无法理解我指的是typed ArrayList。我该怎么办?
211 java  android  json  gson 

8
GSON-日期格式
我正在尝试在Gson输出中使用自定义日期格式,但.setDateFormat(DateFormat.FULL)似乎不起作用,并且与相同.registerTypeAdapter(Date.class, new DateSerializer())。 就像Gson不在乎对象“日期”并以其方式打印它一样。 我该如何改变? 谢谢 编辑: @Entity public class AdviceSheet { public Date lastModif; [...] } public void method { Gson gson = new GsonBuilder().setDateFormat(DateFormat.LONG).create(); System.out.println(gson.toJson(adviceSheet); } 我总是用java.util.Date; setDateFormat()不起作用:(
187 java  gson 

11
使用Gson for Java进行JSON解析
我想从类型为的JSON解析数据String。我正在使用Google Gson。 我有: jsonLine = " { "data": { "translations": [ { "translatedText": "Hello world" } ] } } "; 我的课是: public class JsonParsing{ public void parse(String jsonLine) { // there I would like to get String "Hello world" } }
154 java  json  gson 

4
是否可以将Gson实例用作模型bean中的静态字段(重用)?
这是我实现的模型: public class LoginSession { private static final Gson gson = new Gson(); private String id; private String name; private long timestamp; public LoginSession(String id, String name) { this.id = id; this.name = name; this.timestamp = System.currentTimeMillis(); } public String toJson() { return gson.toJson(this); } public static LoginSession fromJson(String json) …

1
Gson忽略值为value = null的地图条目
Gson gson = new Gson(); Map&lt;String,Object&gt; map = new HashMap&lt;String, Object&gt;(); map.put("a", 1); map.put("b", null); System.out.println(gson.toJson(map)); //prints {"a":1} 如何获取所有条目?
132 java  json  gson 

10
无法在Android Retrofit库中为我的班级创建转换器
从使用Volley迁移到Retrofit的过程中,我已经有了之前用于将JSONObject响应转换为实现gson注释的对象的gson类。当我尝试使用改造使http get请求但我的应用程序崩溃时出现以下错误: Unable to start activity ComponentInfo{com.lightbulb.pawesome/com.example.sample.retrofit.SampleActivity}: java.lang.IllegalArgumentException: Unable to create converter for class com.lightbulb.pawesome.model.Pet for method GitHubService.getResponse 我按照改造现场的指南进行操作,并提出了以下实施方案: 这是我尝试执行复古http请求的活动: public class SampleActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sample); Retrofit retrofit = new Retrofit.Builder() .baseUrl("**sample base url here**") .build(); GitHubService service = retrofit.create(GitHubService.class); Call&lt;Pet&gt; callPet …
129 android  gson  retrofit 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.