Tag: gson

如何使用Google GSON将JSON数组反序列化为generics类型的集合?

我正在编写一些代码,用于从网站中检索资源。 它看起来像这样: public Collection getProjects() { String json = getJsonData(methods.get(Project.class)); //Gets a json list, ie [1, 2, 3, 4] Gson gson = new Gson(); Type collectionType = new TypeToken<Collection>() {}.getType(); return gson.fromJson(json, collectionType); } 所以我很自然地尝试使用Javagenerics来抽象它。 /* * Deserialize a json list and return a collection of the given type. * * Example usage: getData(AccountQuota.class) -> […]

Struts2如何返回JSON响应

我目前正在创建一个Web应用程序,用户可以从数据库中获取标记为JSON, 这是我的struts动作 public String execute(){ Gson gson = new Gson(); String tagsAsJson = gson.toJson(audioTaggingService.findTagsByName(q)); System.out.println(tagsAsJson); return “success”; } 更新: tagsAsJson已经是JSON格式,我想要的只是返回它,而不是整个类动作本身。 它返回这样的东西 这是我想要返回给用户的数据 [{“id”:2,”name”:”Dubstep”,”description”:”Dub wob wob”},{“id”:3,”name”:”BoysIIMen”,”description”:”A 1990s Boy Band”},{“id”:4,”name”:”Sylenth1″,”description”:”A VST Plugin for FLStudio “}] 如何将tagsAsJson作为ar JSON响应返回? 因为JSON响应将由客户端代码使用。

使用Google的Gson进行严格的JSON解析?

假设我使用Google的Gson库将JSON解析为Java数据结构。 如果存在没有相应JSON的Java字段,是否有一种简单的方法可以抛出exception? 也就是说,我希望JSON拥有Java结构中的所有字段。

将英特尔转换为布尔值

有没有办法可以将int / short值转换为布尔值? 我收到的JSON看起来像这样: { is_user: “0”, is_guest: “0” } 我正在尝试将其序列化为如下所示的类型: class UserInfo { @SerializedName(“is_user”) private boolean isUser; @SerializedName(“is_guest”) private boolean isGuest; /* … */ } 我怎样才能让Gson将这些int / short字段翻译成布尔值?

转换时Gson忽略了我的字段

我创建了一个模型: public class UserRequest extends DefaultRequest { public String username; public String password; public String id; public UserRequest(String username, String password) { this.username = username; this.password = password; } } 我称之为: //code truncated UserRequest userRequest = new UserRequest(username,password); response = getRestClient().sysInitApp(userRequest).execute(); //code truncated 然后我打印出请求正文,而不是: { “username”:”farid”, “password”:”passfarid”, “id”:null } 我明白了: { “username”:”farid”, “password”:”passfarid” } 我很感激这个问题的任何帮助。

使用Gson自定义反序列化到Map中

我有以下JSON: { “abc”: { “linkedTo”: “count”, // possibly more data… }, “plmtq”: { “linkedTo”: “title”, “decode”: “true”, // possibly more data… } } 我需要将这个JSON加载到Map ,使用键”abc”和”plmtq” 。 以下是我的Holder课程: public class Holder { private final Map data; public Holder(Map data) { this.data = data; } // More methods in this class… } JSON与我的类结构不匹配 ,但我无法更改JSON或类。 我需要的是一种自定义反序列化的方法,以便我可以将JSON解析为Map 。 有没有办法做到这一点? […]

将json字符串转换为list或map

我在服务器端获得了一个json字符串,如下所示 [ {“projectFileId”:”8547″, “projectId”:”8235″, “fileName”:”1″, “application”:”Excel”, “complexity”:”NORMAL”, “pageCount”:”2″, “targetLanguages”:” ar-SA”, “Id”:”8547″ }, {“projectFileId”:”8450″, “projectId”:”8235″, “fileName”:”Capacity Calculator.pptx”, “application”:”Powerpoint”, “complexity”:”NORMAL”, “pageCount”:”100″, “targetLanguages”:” ar-LB, ar-SA”, “Id”:”8450″ } ] 我想将这个字符串转换为arraylist或map尽可能使我可以迭代它并获取字段值。

使用google gson进行json对象序列化/反序列化

我想将java对象序列化/反序列化为json。 谷歌gson是首选。 我有Aclass: A级{ int x = 1; int y = 2; } 然后,如果我调用new Gson()。toJson(new A()),我将得到以下内容: {x:1,y:2}。 不过我想拥有 {class:“A”,x:1,y:2} 因此,我可以使用reflection对其进行反序列化,而无需在编译时知道类名。 我该怎么办? 谢谢。

Gson JsonObject全局变量

我正在使用Gson API并创建了一个类: public class Person { private String name; private JsonObject someInfo; public Person() { } } 当我使用以下方法实现此类的实例时: Person person = new Person(); person.name = “Charles” person.someInfo = new JsonObject(); person.someInfo.addProperty(“key1″,”value1”); Gson gson = new Gson(); String jsonStr = gson.toJson(person); 我在成员属性中获取信息: {“members”:{“name”:”Charles”,”someInfo”:{“key1″:”value1”}}} 我注意到如果我将Person的类someInfo全局变量声明为JsonElement而不是JsonObject,则信息会正确显示。 有没有办法使用JsonObject实现信息? 我的期望是: {“name”:”Charles”,”someInfo”:{“key1″:”value1”}}

在使用Gson进行序列化时如何公开类名

我的场景非常复杂,但这是一个总结: 我正在尝试理解编译器的来源 – 并且为了理解每个AST节点代表什么,我正在生成不同程序的AST的JSON序列化,然后检查可视化的JSON输出。 它工作得很好除了一个问题是在Gson生成的JSON数据类名称没有提到,所以它仍然没有多大帮助。 有没有办法在没有太多努力的情况下为Gson输出添加类名? (不向每个AST节点添加一些方法等)