Tag: gson

将ArrayList 保存到本地存储

哦,小伙子,所以我花了大约一个小时左右阅读并尝试在Android偏好设置和本地存储中存储可分配Parcelable Object的ArrayList的不同方法,现在我又回到原点。 顺便说一下,我已经下载并导入了Gson,而不是我可以让它工作。 基本上,我在一个名为taskList的ArrayList有一个类,即使用户关闭我的应用程序,我也需要保存它。 如果重要的话, Object包含一个String ,一些Ints ,一些Booleans和ArrayList类的ArrayList 。 重要的是,似乎我不能把它写成一个字符串列表,我发现的所有教程只显示保存简单的ArrayLists,如字符串,它们都是Serializable,而不是Parcelable。 编辑:感谢您的建议,但我实现Parcelable包装活动之间列表中的特定对象..

结果集使用gson 到json

如果我有这样的表: MsUser – userID – username MsProject – userID – ProjectID – ProjectName 如果我有这样的查询: Result set = select * from MsUser mu, MsProject mp WHERE mu.userID = mp.userID 我可以使用Google gson将结果集从上面的查询转换为JSON吗? 顺便说一句,我使用JSP来开发我的应用程序。

流式写Json

我在ArrayList有JsonObject 。 我需要将这些JsonObject添加到JsonArray并将其写入文件中。 我正在使用Gson ,下面是我的代码。 private void myWriter(List jsonObjectHolder, int number) throws IOException { System.out.println(“Starting to write the JSON File”); //Add everything into a JSONArray JsonArray jsonArrayNew = new JsonArray(); for(int i=0;i<jsonObjectHolder.size();i++) { //System.out.println("inside array: "+i); JsonObject o = jsonObjectHolder.get(i); System.out.println("inside array "+i+": "+o.get("title")); jsonArrayNew.add(jsonObjectHolder.get(i)); } System.out.println("Size: "+jsonArrayNew.size()); //Write it to the File File file= […]

RuntimeTypeAdapterFactory表示未定义“类型”

我正在处理我需要反序列化的多态类的情况。 Class Pen{ String name; List animals; } //Animal can be an interface or parent class: I am flexible Class Animal{ AnimalType type;//enum int legs; } enum AnimalType{ dog,cat,pig,chicken; } Class AnimalDog extends Animal{ //… } Class AnimalCat extends Animal{ //… } Class AnimalPig extends Animal{ //… } 然后我创建我的Gson实例 public static Gson instanceUpperCamelCaseWithTypeAdapterFactory() { if […]

改进如何打印响应JSON

我正在使用Retrofit,我希望能够访问从服务器返回的JSON响应。 有人可以告诉我。 谢谢

JSON使用google-gson序列化/反序列化generics类型

好吧,我必须承认我不擅长Java中的generics类型 我使用JavaScriptSerializer在C#中编写了一个JSON序列化/反序列化类 private static JavaScriptSerializer js = new JavaScriptSerializer(); public static T LoadFromJSONString(string strRequest) { return js.Deserialize(strRequest); } public static string DumpToJSONString(T rq) { return js.Serialize(rq); } 它在C#中运行良好。 现在我正在尝试转换或至少在Java中编写另一个JSON序列化/反序列化类。 我已经尝试过flexjson和google-gson,但我不知道如何在Java中指定。 有人可以帮帮我吗? 顺便说一句,我更喜欢google-gson

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

例如:给出这个json文档: { “store”: { “book”: [ { “category”: “reference”, “author”: “Nigel Rees”, “title”: “Sayings of the Century”, “price”: 8.95 }, { “category”: “fiction”, “author”: “Herman Melville”, “title”: “Moby Dick”, “isbn”: “0-553-21311-3”, “price”: 8.99 }, ], “bicycle”: { “color”: “red”, “price”: 19.95 } }, “expensive”: 10 } 我想生产(类似)这个输出: store.book.category: “reference” store.book.author: “Nigel Rees” store.book.title: “Sayings of […]

是否可以使用GSON将句点反序列化为句点作为嵌套对象?

这是我尝试使用GSON使用的JSON类型的示例: { “person”: { “name”: “Philip” “father.name”: “Yancy” } } 我想知道是否可以将此JSON反序列化为以下结构: public class Person { private String name; private Father father; } public class Father { private String name; } 以便: p.name == “Philip” p.father.name == “Yancy” 目前我使用@SerializedName获取包含句点的属性名称,例如: public class Person { private String name; @SerializedName(“father.name”) private String fathersName; } 但是,这并不理想。 从查看文档看起来似乎没有立即可行,但可能有一些我错过了 – 我是新手使用GSON。 不幸的是我无法更改我正在消耗的JSON,而且我不愿意切换到另一个JSON解析库。

为什么Gson.toJson将通用字段序列化为空的JSON对象?

我有一个包含T类型字段的generics类,Gson将此字段序列化为一个空对象。 我在下面提供了代码来演示这个问题。 阅读JSON似乎很好(只要你提供正确的类型令牌)。 import java.lang.reflect.Type; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; public class GsonIssue { static class AbstractThing { private String fieldA = “valueA”; public String getFieldA() { return fieldA; } public void setFieldA(String fieldA) { this.fieldA = fieldA; } @Override public String toString() { return “AbstractThing [fieldA=” + fieldA + “]”; } } static class Thing […]

Gson Json解析器arrays数组

希望解析一些Json并解析数组数组。 不幸的是我无法弄清楚如何处理json中的嵌套数组。 JSON { “type”: “MultiPolygon”, “coordinates”: [ [ [ [ -71.25, 42.33 ], [ -71.25, 42.33 ] ] ], [ [ [ -71.23, 42.33 ], [ -71.23, 42.33 ] ] ] ] } 当我只是一个数组时,我实现了什么。 public class JsonObjectBreakDown { public String type; public List<List> coordinates = new ArrayList(); public void setCoordinates(List<List> coordinates) { this.coordinates = […]