Tag: gson

gson无法使用GsonBuilder.setDateFormat进行解析(“yyyy-MM-dd’T’HH:mm:ss.SSSZ”)

我从服务器获取此字符串: [ { “title”:”spoil the ones u love today”, “startDateTime”:”2014-08-10T20:10:36.7158Z” }, { “title”:”home made patisserie”, “startDateTime”:”2014-08-10T20:08:45.0218Z” } ] 我试着把它解析成一个对象 public class Offer implements Serializable { public String title; public Date startDateTime; } Type collectionType = new TypeToken<ArrayList>() {}.getType(); mOffersList.addAll((Collection) gson.fromJson(result, collectionType)); 但是当我将“startDate”定义为Date时 我从gson回来的系列是空的 当我将“startDate”定义为String时 集合正确填充。 我想更改其日期格式。 这就是我更喜欢将其保存为Date对象的原因。 我努力了 Gson gson = new GsonBuilder().setDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SSSZ”).create; 然而Gson无法解析服务器的字符串 Date […]

从Github安装Gson

我刚刚开始学习Java,我需要Gson来完成我正在开发的新项目。 我觉得我遗漏了一些我在网上找到的所有安装说明 – 所有这些都指的是我应该能够从zip文件中提取的三个jar文件。 但是当我在github上看Gson时,我找不到任何.jar文件! https://github.com/google/gson 一旦找到jar文件,我就应该将它们包含在我正在进行的项目的构建路径中吗? 我正在使用Eclipse开发这个项目。 有人能帮助我一个非常简单的逐步解释,说明如何开始将这些库包含在像我这样的编程中吗? 另外,一旦我将.jar文件包含在项目的构建路径中,我可以调用这些函数吗?

如何让Gson使用访问器而不是字段?

默认情况下,Gson使用字段作为序列化的基础。 有没有办法让它改为使用访问器?

GSON直接访问私人会员?

概要: GSON是否直接访问类的私有成员而不调用其getter方法来获取值? 接下来的Java规则是,如果B类具有私有成员, 则没有getter / setter方法, A类 就无法访问它。 现在我正在与GSON合作开发一个项目,我觉得getter / setter方法被绕过[未使用,私有成员被直接访问] 我只是一名学生,所以我可能会错过一些常见的工作。 A级 public class A { public static void main(String[] args) { B b = new B(); Gson gson = new GsonBuilder().setPrettyPrinting().create(); System.out.println(gson.toJson(b)); System.out.println(“–end–“); } } B级 public class B { private int a; public B() { a = 1; } public int getA() […]

Gson中的DateFormat模式“yyyy-MM-dd’T’HH:mm:ss.SSS’Z’”

我有两个字段如下( 注意第一个字段有毫秒部分 ): { “updateTime”:”2011-11-02T02:50:12.208Z”, “deliverTime”:”1899-12-31T16:00:00Z” } 我想用Json将Json字符串反序列化为一个对象,所以我得到一个Gson实例: GsonBuilder gb = new GsonBuilder(); gb.setDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SSS’Z'”); gson = gb.create(); 第一个字段被反序列化为Java日期类型: 2011-11-02 02:50:12.208 (看起来像忽略了时区部分-‘Z’,这是我所期望的)。 但是,第二个字段被反序列化为1900-01-01 00:00:00 (我住在中国,这里是+ 8 GMT),似乎时区部分-‘Z’在反序列化中起作用。 为什么第二个字段使用时区部分? 这不是我的预期。

Gson:期待一个字符串,但是BEGIN_OBJECT

我试图阅读一个简单的JSON响应。 {“response”:“ok”} 这是我的代码: JsonReader reader = new JsonReader(new InputStreamReader(in, “UTF-8”)); String response = null; boolean success = false; reader.beginObject(); if (reader.hasNext()) { String token = reader.nextName(); if (token.equals(“response”)) { response = reader.nextString(); } else { reader.skipValue(); } } reader.endObject(); reader.close(); 但是我收到了这个错误: 期望一个字符串,但是BEGIN_OBJECT 我不明白我做错了什么。 你能帮助我吗?

如何从自定义Gson JsonSerializer调用另一个序列化程序?

我有我的自定义类User : class User { public String name; public int id; public Address address; public Timestamp created; } 我现在正在为User.class创建一个自定义的JsonSerializer: @Override public JsonElement serialize(User src, Type typeOfSrc, JsonSerializationContext context) { JsonObject obj = new JsonObject(); obj.addProperty(“name”, src.name); obj.addProperty(“id”, src.id); obj.addProperty(“address”, src.address.id); // Want to invoke another JsonSerializer (TimestampAdapter) for Timestamp obj.add(“created”, ???); return obj; } 但我已经有一个TimestampAdapter用于Timestamp.class […]

用Gson解析JSON地图/词典?

我需要解析一个看起来像这样的JSON响应: {“key1”: “value1”, “key2”: “value2”, “key3”: {“childKey1”: “childValue1”, “childKey2”: “childValue2”, “childKey3”: “childValue3” } } class Egg { @SerializedName(“key1”) private String mKey1; @SerializedName(“key2”) private String mKey2; @SerializedName(“key3”) // ??? } 我正在阅读Gson文档,但无法弄清楚如何正确地将字典反序列化为Map。

如何使用GSON / JSON将字符串数组转换为对象?

我有一个像这样的json: [ [ “Passport Number”, “NATIONALITY”, “REASONS” ], [ “SHAIS100”, “INDIA”, “” ], [ “”, “”, “Agent ID is not matched.” ], [ “”, “”, “” ] ] 我想将此填充到ArrayList ,请告诉我该怎么办? 并且空字符串不应转换为null。

Json将&在String中转换为\ u0026

我试图从pdf中提取文本并将其写入json文件。 在提取unicode字符时,Json会将所有字符转换为\ u0026。 例如,我的实际字符串是&#1588 。 (代表ش)。 它可以正确打印到.txt文件,控制台等。但是当我尝试将此字符串打印到Json文件时,它会显示\u0026#1588; 。 我使用的是Java,代码是 Gson gson = new Gson(); String json = gson.toJson(pdfDoc); 注意: pdfDoc是一个对象,它包含输入PDF文档中字符的所有详细信息(位置,颜色,字体等)。 我正在使用gson-2.2.1.jar 。