Articles of gson

如何在RetroFit中使用Gson转换器?

我正在制作一个简单的RetroFit应用程序用于教育目的,并使用IntelliJ IDEA作为我的IDE。 我已经正确地导入了Retrofit库(至少我认为我有)但是我无法获得Gson Converter包。 我有谷歌安装的gson.jar,但在这些库中没有任何一个地方有一个名为“GsonConverterFactory”的类,这是我解析JSON所必需的。 编辑:我在Windows上。

如何使用gson调用默认的反序列化

我得到一个有“场”字段的json。 如果“字段”有数据,那么有一个OBJECT有许多(大约20个)其他字段也是对象。 我可以毫无问题地反序列化它们。 但是如果“field”没有数据,那么它就是一个空的ARRAY(我知道它很疯狂,但那是服务器的响应而我无法改变它)。 像这样的东西: 空的时候: “extras”:[ ] 有一些数据: “extras”: { “22”:{ “name”:”some name” }, “59”:{ “name”:”some other name” }, and so on… } 所以,如果没有数据(空数组),我显然得到了exception Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 4319 我尝试使用自定义JavaDeserializer: public class ExtrasAdapter implements JsonDeserializer { @Override public Extras deserialize(JsonElement json, Type typeOf, JsonDeserializationContext context) […]

如何抓取JSON数组并使用gson解析每个json对象? (改型)

我正在使用我的json对象返回一个结果数组,我正在尝试使用我的customObjectResponse类来拉出每个对象中的每个字段…它期望一个对象的问题所以我如何编辑我的类允许它接受一个对象数组,然后可以调用每个对象的字段…我很困惑,需要添加什么: 以下是要传递的内容的响应示例: [ { itemId: ‘dfsdfsdf343434’, name: ‘tests’, picture: ‘6976-7jv8h5.jpg’, description: ‘testy.’, dateUpdated: 1395101819, } ] 这是我的响应对象类: public class ObjResponse{ private String itemId; private String name; private String picture; private String description; private String location; private int dateUpdated; private String msg; //gridview constructor public ObjResponse(String picture) { this.picture = picture; } //public constructor public ObjResponse() […]

Gson – 相同的字段名称,不同的types

我今天在一个不同的问题上问过这个问题,但我担心因为它的措辞如何而无法得到任何解决方案。 我有一个json输入,其中包含以下数据: 如您所见, option_value项是一个对象中的Array和另一个对象中的简单字符串。 我怎样才能让Gson正确处理这个问题? 我的类将其描述为List对象,因此它适用于其中option_value是数组的前几个项目,但是当它变为字符串时 ,应用程序崩溃并且我得到json解析exception 。 这有解决方法吗? UPDATE 按要求添加我class级的相关部分: public class Options { String product_option_id; String option_id; String name; String type; String required; List option_value; // get set stuff here public class OptionValue { String product_option_value_id; String option_value_id; String name; String image; String price; String price_prefix; // get set stuff here } }

Retrofit 2示例教程但GsonConverterFactory显示错误“无法解析符号”

我正在尝试遵循Retrofit的2 教程,但是在这部分代码中有一个显示错误的GsonConverterFactory Cannot resolve symbol : public class ServiceGenerator { public static final String API_BASE_URL = “http://your.api-base.url”; private static OkHttpClient httpClient = new OkHttpClient(); private static Retrofit.Builder builder = new Retrofit.Builder() .baseUrl(API_BASE_URL) //THIS IS THE LINE WITH ERROR!!!!!!!!!!!! .addConverterFactory(GsonConverterFactory.create()); public static S createService(Class serviceClass) { Retrofit retrofit = builder.client(httpClient).build(); return retrofit.create(serviceClass); } } 之前我在gradle.build中添加了,我不确定是否应该添加GSON,因为他们说Retrofit 1.9有它但是没有提到Retrofit […]

Retrofit2.0得到MalformedJsonException,而json似乎正确吗?

我正在使用改装:2.0.0-beta4为我的Android应用程序。 我尝试添加用户使用Retrofit,用户在数据库中正确创建,但是我收到以下错误: 03-14 06:04:27.731 30572-30600/com.lehuo.lehuoandroid D/OkHttp: CALLING POST SP_User_CreateUser….your new user_id:48 {“data”:{“user_id”:”48″,”nickname”:null,”password”:null,”status”:null},”status”:1,”msg”:”OK”} 03-14 06:04:27.731 30572-30600/com.lehuo.lehuoandroid D/OkHttp: <– END HTTP (147-byte body) 03-14 06:04:27.732 30572-30600/com.lehuo.lehuoandroid E/My Jobs: error while executing job com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1573) at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1423) at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:587) at com.google.gson.stream.JsonReader.peek(JsonReader.java:429) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:202) at […]

谷歌的Json Parsing Gson库:JsonElement和JsonObject有什么区别?

public abstract class JsonElement extends Object 表示Json元素的类。 它可以是JsonObject,JsonArray,JsonPrimitive或JsonNull。 public final class JsonObject extends JsonElement 表示Json中对象types的类。 对象由名称 – 值对组成,其中名称是字符串,值是任何其他types的JsonElement。 这允许创建JsonElements树。 此对象的成员元素按照添加顺序进行维护。 耶谷歌! 没关系那个问题。

Gson将List 反序列化为realmList

我正在使用gson进行改造,将我的json反序列化为领域对象。 这在大多数情况下非常有效。 处理时遇到麻烦 RealmList(String(或任何其他基本数据types)) 由于Realm不支持RealmList,其中E不扩展Realm对象,我将String包装在RealmObject中。 public class RealmString extends RealmObject { private String val; public String getValue() { return val; } public void setValue(String value) { this.val = value; } } 我的领域对象如下 public class RealmPerson extends RealmObject { @PrimaryKey private String userId; … private RealmList stringStuff; private RealmList otherStuff; } SimpleRealmObj工作正常,因为它只有String元素 public class SimpleRealmObj extends […]

Android JSONObject与GSON

我无法理解JSONObject和GSON之间在Android中解析JSON字符串的区别。 有人可以解释一下吗?

使用GSON在android中解析动态“key”和“value”的JSON

我目前正在开发一个Android项目,要求我调用一个Web服务,它将返回一个json文件。 我一直在使用GSON库来解析所有json文件并获取一个JSON对象。 它一直运行良好,直到我遇到这些关键字段是动态的json数据。 此文件的示例如下: { “0”: { “count”:”5″}, “1”: { “title”:”…”, “desc”:”” }, “2”: { “title”:”…”, “desc”:”” }, “3”: { “title”:”…”, “desc”:”” }, “4”: { “title”:”…”, “desc”:”” }, “5”: { “title”:”…”, “desc”:”” }, “routes”: { “route1″:”…”, “route3″:”” }, } 我能够根据密钥ID“0”得到计数,但我不知道如何利用这个值来获取其他密钥对象(密钥id 1-5),其中包含数据我需要。 如果有人能够帮助我解决这个问题,我们将非常感激。 谢谢。