Tag: json

GSON – 将字符串转换为JsonArray

我想将一个字符串转换成JsonArray。 到目前为止,我试图做到以下几点: Gson().toJson(string) Gson().toJsonTree(string) 都抛出一个异常,说这个参数不是JsonArray。 这是字符串,你可以看到它是一个JsonArray: "[{\"match\":{\"id\":92757102,\"tournament_id\":3666234,\"state\":\"open\",\"player1_id\":58602461,\"player2_id\":58602459,\"player1_prereq_match_id\":null,\"player2_prereq_match_id\":null,\"player1_is_prereq_match_loser\":false,\"player2_is_prereq_match_loser\":false,\"winner_id\":null,\"loser_id\":null,\"started_at\":\"2017-07-17T19:10:07.588-04:00\",\"created_at\":\"2017-07-17T19:10:07.476-04:00\",\"updated_at\":\"2017-07-17T19:10:07.588-04:00\",\"identifier\":\"A\",\"has_attachment\":false,\"round\":1,\"player1_votes\":null,\"player2_votes\":null,\"group_id\":null,\"attachment_count\":null,\"scheduled_time\":null,\"location\":null,\"underway_at\":null,\"optional\":false,\"rushb_id\":null,\"completed_at\":null,\"suggested_play_order\":1,\"prerequisite_match_ids_csv\":\"\",\"scores_csv\":\"\"}}]"

自定义反序列化器在杰克逊的任何名单

我有一个列表中的错误对象的问题。 例如我有一个JSON模型: { "items": [ { "id": 1, "name": "Item1" }, { "id": 2, "name": "Item2" }, { "id": [], "name": "Item3" } ] } 和两个POJO data class BadList(val items: List<BadItem>) data class BadItem(val id: Int, val name: String) 当然,当解析器绊倒第三个元素时,我会得到异常 com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.Integer out of START_ARRAY token at [Source: {"items":[{"id":1,"name":"Item1"},{"id":2,"name":"Item2"},{"id":[],"name":"Item3"}]}; line: […]

我怎样才能使用Parse LiveQuery的Android自动添加新的对象到我的RecyclerAdapter?

我使用LiveQuery解析Android来监听事件,即创建一个对象。 当对象被创建时,我想把它添加到我的列表的开始。 听力部分似乎正在工作,但我不知道如何处理收到的JSON对象。 特别是,我正在学习本教程,并使用Back4App作为主机: https ://docs.back4app.com/docs/android/live-query/ 摇篮: compile 'com.google.code.gson:gson:2.8.1' compile 'com.github.tgio:parse-livequery:1.0.3' 我有一个异步的任务,在一个单独的线程上运行网络操作,并能够检索所需的JSON对象: private class UpdateTask extends AsyncTask<String, String, String> { protected String doInBackground(final String… string) { Log.e(getClass().getName(), "ASYNC"); // Subscription final Subscription sub = new BaseQuery.Builder("Message") .build() .subscribe(); Log.e(getClass().getName(), String.valueOf(sub.isSubscribed())); sub.on(LiveQueryEvent.CREATE, new OnListener() { @Override public void on(final JSONObject object) { Log.e(getClass().getName(), object.toString()); runOnUiThread(new Runnable() […]

Klaxon的JSON漂亮的打印输出“”

val time = json.lookup<String?>("query.results.channel.title").toJsonString(true) 输出 [“Yahoo! Weather – Nome,AK,US”] 有没有方法得到没有括号和引号的输出? 我想这个 .replace("[\"","").replace("\"]","") 不是最好的方法

Android的使用Klaxon JSON我怎么能得到以下的JSON到一个ListView?

我正在寻找如何使用Klaxon把我的JSON放到LISTView的数组中。 这与Java有所不同,有两个原因。 这是Kotlin和Klaxon。 下面是一个州的城镇的一系列拉链和信息。 我通过燃料拉它,我可以得到它进入Klaxon阅读部分对象到文本字段,但我想建立一个列表,其中每个对象有自己的行。 想知道如何从A点klaxon进入列表点B. 不知道如何去做这件事。 { “城市”:[{ “拉链”: “02052”, “城市”: “Medfield的”, “国家”: “MA”, “LAT”: “42.178”, “龙”: “ – 71.3059”},{ “拉链”: “02054”, “城市”: “米利斯”, “国家”: “MA”, “LAT”: “42.1677”, “龙”: “ – 71.3601”},{ “拉链”: “02081” , “城市”: “沃波尔”, “国家”: “MA”, “LAT”: “42.1429”, “龙”: “ – 71.2571”},{ “拉链”: “02030”, “城市”:“多佛“ ”国家“: ”MA“, ”LAT“: ”42.2341“, ”龙“: ” […]

JSON jsonObject.optString()返回String“null”

我正在开发一个使用JSON进行服务器通信的Android应用程序,当我尝试解析我的json文件时,出现了一个奇怪的问题。 这是我从服务器的JSON { "street2": null, "province": null, "street1": null, "postalCode": null, "country": null, "city": null } 我通过在我的地址Json对象上调用String city = address.optString("city", "")来获得City的值。 对于这种情况,我期待city是空的(这是什么optString在这里是不是?),但实际上它包含字符串“null”。 所以进一步null或isEmpty检查将返回false,因为字符串包含文本。 如果我调用address.isNull("city")则返回true,这是正确的。 只有optString失败。 我找不到Google或Stackoverflow上的任何问题。 我真的不明白怎么会发生,因为我认为optString会做我所期望的。 有人知道这里怎么了?

谷歌Gson – 反序列化列表<class>对象? (通用型)

我想通过谷歌Gson传递一个列表对象,但我不知道如何反序列化泛型类型。 我看了这个 (BalusC的回答)之后试了一下: MyClass mc = new Gson().fromJson(result, new List<MyClass>(){}.getClass()); 但是后来我在eclipse中得到一个错误:“新的List(){}类型必须实现继承的抽象方法…”,如果我使用快速修复,我会得到一个超过20个方法存根的怪物。 我很确定有一个更简单的解决方案,但我似乎无法找到它! 编辑: 我现在有 Type listType = new TypeToken<List<MyClass>>() { }.getType(); MyClass mc = new Gson().fromJson(result, listType); 不过,我在“fromJson”一行中得到以下例外: java.lang.NullPointerException at org.apache.harmony.luni.lang.reflect.ListOfTypes.length(ListOfTypes.java:47) at org.apache.harmony.luni.lang.reflect.ImplForType.toString(ImplForType.java:83) at java.lang.StringBuilder.append(StringBuilder.java:203) at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:56) at com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:88) at com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:76) at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:106) at com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:64) at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:49) at com.google.gson.Gson.fromJson(Gson.java:568) at com.google.gson.Gson.fromJson(Gson.java:515) at com.google.gson.Gson.fromJson(Gson.java:484) at com.google.gson.Gson.fromJson(Gson.java:434) […]

使用GSON获取嵌套的JSON对象

我从我的android应用程序使用API​​,所有的JSON响应是这样的: { 'status': 'OK', 'reason': 'Everything was fine', 'content': { < some data here > } 问题是我所有的POJO都有一个status , reason字段,而content字段里面是我想要的真正的POJO。 有什么办法可以创建一个Gson自定义转换器来提取总是content字段,所以改造返回适当的POJO?

在Android应用程序资源中使用JSON文件

假设我的应用程序的原始资源文件夹中有JSON内容的文件。 我怎样才能读到这个应用程序,以便我可以解析JSON?

有没有办法使用Spring Integration默认JSON序列化?

我正在使用Spring Integration与AMQP支持的消息,我宁愿使用JSON而不是默认的Java序列化消息。 此首选项部分是由于使用Kotlin对象时遇到的序列化异常。 在研究这个问题的时候,我遇到了这个帖子: Spring集成 – AMQP支持的消息通道和消息转换 所以看起来,只有最近才支持使用带有AMQP支持的消息的JSON序列化功能。 此外,我相信Spring Cloud Stream项目提供了对这种方法的支持,但是我还没有弄清楚如何实现与SI类似的东西。 我偶然发现一个帖子,提供了一个渠道来逐个渠道的方法,但是如果我真的想要在整个板子上使用它,那么对于每个渠道来说,这样配置就显得很乏味了。