如何在Android项目中添加Gson插件?
我正在使用Gson Parser(最新版本 - > 2.8.2). 我想使用 runtimetypeadapterFactory 是GSON Extras的一部分. 在我的build.gradle中,当前有一个编译指令: compile 'com.google.code.gson:gson:2.8.2' 然而,这仅给了我没有附加功能的gson lib(在项目中未识别runtimetypeadapterfactory ...). 我已经看了看GSON Extras'pom文件( https:https://github.com/google/gson/blob/master/extras/pom.xml )和 试图将以下线添加到我的构建gradle: compile 'com.google.code.gson:gson-extras:2.8.2' 但是Gradle只是不会编译Gson Extras: "Error:Failed to resolv
14 2024-04-04
编程技术问答社区
使用GSON和TypeAdapter将BSON(mongoDB)读入POJO中
我正在寻找一种使用GSON将MongoDB文档阅读到POJO的方法.它可以正常工作,直到您遇到诸如date and longs之类的东西. 我想为GSON编写一个自定义适配器,该适配器将转换任何编码长的BSON.阅读创建了我自己的适配器: public class BsonLongTypeAdapter extends TypeAdapter { @Override public void write(JsonWriter out, Long value) throws IOException { out.beginObject() .name("$numberLong") .value(value.toString()) .endObject(); } @Override public Long read(JsonReader in
6 2024-04-04
编程技术问答社区
将BSON类型的ObjectId转换为JSON(存储在Mongodb中)-Java
new Gson().tojson(new Objectid()) 当我进行上述时,我得到的输出是 " _ id":{" _time":1374347520," _machine":-1025067326," _inc":585905201," _new":false} 但实际上我希望它是 " _ id":{" $ oid":51EAE100C2E6B6C2222EC3431} 这是通常的mongoDB ID格式. Java中最好的方法是什么? 更新: 我的价值对象 import com.google.gson.annotations.SerializedName; import org.bson.types.ObjectId; public class TaskObject { @SerializedName("_id") private ObjectId _id; @SerializedName("revN
18 2024-04-04
编程技术问答社区
META-INF/versions/9/module-info.class:破损的类文件?(此功能需要ASM6)
我对Bouncycastle有问题,仅在运行:lint任务时才会出现. 通常,它似乎是Java 9字节代码版本53.0/ asm 版本冲突. 这些是依赖性: // https://mvnrepository.com/artifact/org.bouncycastle implementation "org.bouncycastle:bcprov-jdk15on:1.64" implementation "org.bouncycastle:bcpkix-jdk15on:1.64" 导致:lint任务投掷处理错误: > Task :mobile:lint Error processing bcpkix-jdk15on-1.64.jar:META-INF/versions/9/module-info.class: broken class file? (This feature requires ASM6) Error processing bcprov-jdk15
12 2024-04-03
编程技术问答社区
GSON不解析布尔运算(总是错误)。
我正在使用改造来获取JSON文档.问题是,所有布尔人总是是错误的. 响应看起来像这样: { "gender":[0,1], "age":[20,30], "likesLeaveHome":false, "likesSport":false, "likesCulture":false, "likesTraveling":false ... } 我用 调用改装方法 onResponse(Call call, Response response) 以及应将响应解析为看起来像这样的搜索程序类别: public class SearchProfile { public ArrayList gender = new ArrayList(); // works fine public ArrayList age
6 2024-04-01
编程技术问答社区
GSON 错误的大写字母
有没有办法让gson识别为布尔人? ,例如 gson.fromJson("False",Boolean.class) 解决方案 是的,您可以提供自己的求职者并做任何您想做的事: public class JsonBooleanDeserializer implements JsonDeserializer{ @Override public Boolean deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { try { String value = json.getAsJsonPrimitive().getAsString(); return value.toLowe
16 2024-04-01
编程技术问答社区
Scala Gson,无法序列化Option[Blob]
我设法扩展了GSON以处理Scala的Option和Blob类型,但是我在组合的Option[java.sql.Blob]中遇到了麻烦. 我的测试说 [info] - 应该序列化选项 - 好的 [info] - 应该序列化斑点-OK [info] - 应该序列化选项[blob] *失败 * [info] {" x":{" buf":[97,115,100,102]," len":4," origlen":4}}}}}}}不等于{" x":" asdf"} 您能告诉我这个{"buf": [...]}对象是什么,并且可能是Gson这样做的原因?我的序列化器(下图)肯定会告诉他从中制作一个字符串,但是这个对象是甚至没有引用. fwiw,试图序列化具有带有真实斑点的选项[blob]字段的真实对象(数据库行),我什至会遇到一个stackoverflow错误. 这是我写串行序列的方式: class OptionSerializer extends
18 2024-04-01
编程技术问答社区
使用GSON对BigDecimal值进行序列化
这是我的代码: System.out.println(GSON.toJson(new BigDecimal(10.12))); ,输出为: 10.1199999999999992184029906638897955417633056640625 是否有可能限制GSON序列化的BigDecimal值的精度?即我的序列化值的预期输出是: 10.11 解决方案 这不是GSON问题. new BigDecimal()尝试准确表示双重并最终取更多数字. 您可以使用BigDecimal.valueOf(10.12)或new BigDecimal("10.12")而不是new BigDecimal(). System.out.println(GSON.toJson(BigDecimal.valueOf(10.12))); 其他解决方案 这里的问题不是 gson ,而是您的BigDecimal值. 如果您使用new BigDecimal(doubl
16 2024-03-30
编程技术问答社区
如何用gson对base64编码的json数据进行反序列化?
我有这样的JSON: {code:1, message:"ok", data:"W3tpZDoxLCBuYW1lOiJUb20ifSx7aWQ6MiwgbmFtZToiSmFjayJ9LHtpZDozLCBuYW1lOiJMdWNpYSJ9XQ=="} ,仅使用base64编码数据,实际数据是: [{id:1, name:"Tom"},{id:2, name:"Jack"},{id:3, name:"Lucia"}] .如何使用GSON在一个步骤中对此JSON进行挑选? 解决方案 gson在这里建议一些选项,但以下内容似乎是最短的选择.考虑以下Response和User类: final class Response { @SerializedName("code") final int code = Integer.valueOf(0); @SerializedName("message") final Stri
10 2024-03-27
编程技术问答社区
在安卓系统中使用Base64改造图片上传
我正在尝试使用Base64格式的Raturofit上传图像. 将位图转换为base64, public static String convertImageToStringForServer(Bitmap imageBitmap){ ByteArrayOutputStream stream = new ByteArrayOutputStream(); if(imageBitmap != null) { imageBitmap.compress(Bitmap.CompressFormat.JPEG, 60, stream); byte[] byteArray = stream.toByteArray(); return Base64.encodeToString(byteArray, Base64.DEFAULT); }else{ re
6 2024-03-27
编程技术问答社区
SOAP响应中的额外/冗余成员阻止了序列化(Axis、Java、Gson)。
我正在使用Axis调用基于SOAP的Web服务.然后,我尝试使用Google GSON库将返回的远程对象序列化为JSON. JSON的序列化失败,Gson抱怨"有多个元素__ equalalscalc()). 当我检查我的IDE(Eclipse)中返回的对象时,我可以看到这是真的 - 返回的对象有三个称为__equalsCalc()的成员,另一个称为__hashcode. 我从环顾四周中知道,WSDL2Java(我认为)添加了这些内容,以避免递归.我的问题是,为什么每个都有三个?我如何才能让序列化器忽略这些序列化合物?它们实际上并不是对象定义的一部分(称为remoteproject,供参考).我可以做一些黑客的事情,例如将远程保护措施投射到远程部位上以使其放下这些成员吗? 解决方案 这并不难以解决.我有同一实例var的多个副本,因为序列化的类是从超级类别中遮蔽同名字段.由于我不在乎这些字段,因此GSON中最好的方法是编写一个自定义的Exckusionstrate
4 2024-03-23
编程技术问答社区
如何使用Gson在Json中为asmx web服务包含对象类型
将数据发送到.NET 2.0中的ASMX Web服务时,我们如何保留JSON字符串中的对象类型? 例如: class A{ string name; } class B : A { string address; } 和Web方法: [WebMethod] public void PushJson(A obj){ B b = (B) obj; } 现在在上面的示例场景中,可以说,我发送{"obj":{"name":"waqas","address":"sweden"}}然后我如何强制我的json字符串充当B类的类型,以便可以通过Web方法将其作为A类A和进一步的对象接受解析回B类的对象?简而言之,如何保留JSON中的多态性? 我注意到,每当我尝试执行这种模式 时,编译器都会抛出我System.InvalidCastException P.S.我注意到.NET在序列化为JSON时为复杂对象添加 __ type .我们是否可以包含此键来帮助.NE
8 2024-03-09
编程技术问答社区
解析包含基元和对象的JSONArray
我有JSON响应,看起来像: { "response":[ "Some number (for example 8091)", { "Bunch of primitives inside the first JSONObject" }, { "Bunch of primitives inside the second JSONObject" }, { "Bunch of primitives inside the third JSONObject" }, ... (and so on) ] } 因此,它是一个带有第一个整数元素的数组,而其他元素是JSONOBJECT. 我不需要分析整数元素.那么如何使用gson处理? 解决方案 我将通过创建自定义JsonDeserializer并在解析前将其注册到您的Gso
12 2024-03-07
编程技术问答社区
从JSON中提取一个字节数组
我有以下格式的JSON: [{"fingerprint":"[79,0,0,0,18,0,0,0,18,0,0,0,19,0,0,0,23,0,0,0,40,0,0,0,42,0,0,0,63,0,0,0,68,0,0,0,71,0,....]"}] 我一直在尝试使用以下内容从其提取字节数组: JSONFingerprint fingerprintData = gson.fromJson(obj, JSONFingerprint.class); jsonfingerprint是: public class JSONFingerprint { byte[] fingerprint; public byte[] getfingerprintData() { return fingerprint; } } 我一直在遇到此错误: Exception in thread "Thread-0" com.google.g
10 2024-03-06
编程技术问答社区
使用Gson将JsonArray序列化为数组而非对象
我正在使用GSON库,但是当它序列化JSONARRAY对象时,它似乎将其序列化为一个对象而不是JSON数组.即. {elements:[{name:" value1},{name:" value2"}]} 如何从序列化中删除元素? 解决方案 我去看医生,因为当我走上它时,我的脚受伤了.医生说:"不要走." 通常,当使用像GSON这样的API时,人们甚至不知道存在JsonArray,而是只能使用API​​的数据绑定部分.因此,而不是手动构建JsonArray,然后处理序列化,而只需将Java List或数组送入Gson.toJson().例如: List list = new ArrayList(); list.add("one"); list.add(2); list.add(new Foo()); Gson gson = new Gson(); String json = gson.toJson(list); System.out.println(js
16 2024-03-06
编程技术问答社区
将json字符串转换为对象数组
我有JSON数组为字符串 [ { "id":"1", "lat": "23.053", "long": "72.629", "location": "ABC", "address": "DEF", "city": "Ahmedabad", "state": "Gujrat", "phonenumber": "1234567" }, { "id":"2", "lat": "23.053", "long": "72.629", "location": "ABC", "address": "DEF", "city"
20 2024-03-05
编程技术问答社区
如何在Gson中制作一个自定义的列表反序列化器?
我需要对具有数组的JSON文件进行估算.我知道如何对其进行测试,以便我获得一个列表对象,但是在框架中,我使用的是一个不实现Java列表接口的自定义列表对象.我的问题是,如何为我的自定义列表对象编写一个求职者? 编辑:我希望求职者是通用的,这意味着我希望它适用于各种列表,例如CustomList,CustomList,CustomList,而不仅仅是特定的列表,因为它会很烦人为我使用的每种制作求职者. 解决方案 这是我想到的: class CustomListConverter implements JsonDeserializer> { public CustomList deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext ctx) { Type valueType =
10 2024-03-05
编程技术问答社区
如何在Java中把自定义类的ArrayList转换成JsonArray?
我试图将自定义类的arraylist转换为jsonarray.以下是我的代码.它执行良好,但有些JSONARRAY元素也像零一样,即使它们是阵列列表中的数字.我试图将它们打印出来.就像阵列列表中的客户年龄一样,但在jsonarray中为0.怎么了? ArrayList customerList = CustomerDB.selectAll(); Gson gson = new Gson(); JsonElement element = gson.toJsonTree(customerList , new TypeToken>() {}.getType()); JsonArray jsonArray = element.getAsJsonArray(); 解决方案 以下代码应适用于您的情况. List customerList = CustomerDB.s
16 2024-03-05
编程技术问答社区
本以为是BEGIN_ARRAY,但却是STRING,但JSON是正确的。
我搜索了其他相关问题,但无法找到我的答案. 这是我的JSON:命名appointments.json [ { "title": "Primary Care", "text": "Schedule a Primary Care appointment online.", "image": "http://i.imgur.com/DvpvklR.png" }, { "title": "Primary Care", "text": "Schedule a Primary Care appointment online.", "image": "http://i.imgur.com/DvpvklR.png" }, { "title": "Primary Care", "text": "Schedule a Primary Care appointment online.", "image
8 2024-03-05
编程技术问答社区
用Gson或嵌套的内层类反序列化任意对象json数组
当我尝试用GSON进行一个JSON字符串时,我会遇到麻烦.字符串是这样的 (注意:我只是简化了它,但是离开部分,我遇到了麻烦,因此,可能会有JSON语法错误,但是我已经检查了与在线验证器一起检查的我正在使用的字符串是可以的): // let's call this "container" json element { "context": "context", "cpuUsage": cpuUsageValue, "name": "thename", "rates": { "definition": [ { "key": "name", "type": "string" }, { "key": "rate", "type": "double" } ] "rows": [ { "name
10 2024-03-05
编程技术问答社区