草庐IT

java - 使用 gson 将嵌套的 Java 对象与 json 相互转换

假设我们有以下两个Java类(忽略其他类成员):classBook{privateStringname;privateString[]tags;privateintprice;privateAuthorauthor;}classAuthor{privateStringname;}此外,假设我们有以下json对象:{"Book":{"name":"Bible","price":20,"tags":["God","Religion"],"writer":{"name":"Jesus"}}我正在尝试找到将JavaBook实例转换为json并使用gson返回的最佳方法。为了使示例更有趣,请注意

java - GSON解析动态JSON字段

我似乎无法弄清楚这一点。我看过一些SO帖子(here和here),我的情况有点不同。我不确定我是否必须注册一个新的TypeToken或什么。但是我的JSON对象看起来像这样:{"id":6,"error":"0","dates":{34234:"2011-01-01"//Iwanttoparsethedateintoastring.87474:"2011-08-09"//Thefirstvaluesareallunique..//thiscanbeanynumberofentries...74857:"2011-09-22"}}我已经像这样创建了我的两个对象:publicclassRe

java - Java中的Gson、JsonElement、String比较

好吧,我想知道这可能是非常简单和愚蠢的,但在与这种情况斗争了一段时间之后,我不知道发生了什么。我正在使用Gson来处理一些JSON元素。在我的代码中的某处,我将JsonObject的JsonElements之一作为字符串获取,并将其与另一个字符串进行比较。据我所知,它们都是相等的,但在比较时我总是得到假。这是片段。JsonArrayarr;JsonObjectjsonobj;JsonElementmodel_elem;StringSTUPID_STRING="blablabla";//Previouslyweinitializesandfillarr,itdoesn'tmatterho

java - 在 Java 中使用 Gson 合并/扩展 JSON 对象

我经常需要合并两个JSON对象(类似于jQuery的$.extend()的工作方式)。但是,Gson库没有内置功能,他们说theywon'timplementit.做类似的事情:privatevoidmerge(JsonObjectfirstObj,JsonObjectsecondObj){for(StringkeyInSecondObj:secondObj.entrySet().keySet()){if(!firstObj.has(keyInSecondObj)){firstObj.add(secondMap.get(keyInSecondObj));}}太简单了,因为它不处理递归合

java - 如何迭代 json 对象数组(gson)

我正在制作一款舰船防御游戏。我在获取航点数组时遇到问题。map包含JSON格式(使用GSON){"waypoints":{"ship":{"first_type":[[0,0],[5,7],[2,8],[4,4],[10,10],[12,0],[0,12],[12,8],[8,8]]},"boat":{"first_type":[[0,0],[5,7],[2,8],[4,4],[10,10],[12,0],[0,12],[12,8],[8,8]]}}}我的代码:jse=newJsonParser().parse(in);in.close();map_json=jse.getAsJson

java - 如何使用 Gson 获取 JSON 元素类型?

在JSON文件中,文件中的每个对象都由不同类型的JSON元素组成。(整数、字符串、数组、对象数组等)我的目标是列出所有元素名称和对应的类型。我可以知道如何在Gson中做到这一点吗?这样做的目的是创建Hive架构。例子:{"number":1,"ts":"1386848002","cmpg":[{"id":476,"mcp":0,"deals":[],"cookie":"uid:123","bid":[{"bId":0,"status":"ZB","rmtchID":-1}]}]}输出:numberint,tsString,cmpgarray>//notsurehowtointerpre

java - Java 中 JSON 注入(inject)的强化错误

我正在从客户端获取SUBSCRIPTION_JSON,我将其转换为字符串,然后使用gson库将其设置为模型对象。在Fortifysecurity上运行代码时,它在下面的代码中给我Json注入(inject)错误,并显示以下消息:这是错误:Online159ofActionHelper.java,themethodjsonToObject()writesunvalidatedinputintoJSON.ThiscallcouldallowanattackertoinjectarbitraryelementsorattributesintotheJSONentity.Themethodwr

java - GSON通过注解控制序列化格式化

我正在尝试使用注释来控制序列化格式。但是似乎没有任何方法可以从TypeAdapter或TypeAdapterFactory内部访问字段注释。这是我正在努力实现的一个例子。importorg.joda.time.DateTime;publicclassMovie{Stringtitle;@DateTimeFormat("E,Mdyyyy")DateTimereleaseDate;//otherfields...}publicclassLogEvent{Stringmessage;@DateTimeFormat("yyyyMMdd'T'HHmmss.SSSZ")DateTimetimest

java - 使用谷歌的 Gson 将 Json 转换为 java 对象

我正在使用SpringSocialFqlQuery从facebook获取数据。这是我从Facebook获得的JSON响应。我获取Json输出的Controller在这里,fql="SELECTworkFROMuserWHEREuid=me()";facebook.fqlOperations().query(fql,newFqlResultMapper(){publicObjectmapObject(FqlResultresult){Listlist=(List)result.getObject("work");for(Objectobject:list){JsonHelperjsonH

java - 有没有关于 Gson "circular reference"的解决方案?

我找了很多关于Gson循环引用的文章,但是我找不到一个优雅的解决方案。据我所知,一些解决方案是:将导致循环引用的属性设置为“transient”。用一些注释排除属性。但作为一个一般性问题,是否有一些通用的策略来解决这个问题? 最佳答案 据我所知,在Gson中没有针对循环引用的自动化解决方案。我所知道的唯一一个自动处理循环引用的生成JSON的库是XStream(使用Jettison后端)。编辑:Jackson还支持使用@JsonIdentityInfo注释处理循环引用;因此虽然不是自动的(您确实需要标记需要处理对象ID的引用),但它确