草庐IT

java.lang.IllegalStateException : Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 错误

我正在使用RetroFit在线连接到API。但是我在尝试解析返回的数据时遇到此错误。retrofit.RetrofitError:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:ExpectedBEGIN_ARRAYbutwasBEGIN_OBJECTatline1column2返回的数据在This中下面还给出了数据的格式和模型:iGPlaceApi.getStreams(ITEMS_PER_PAGE,pageNumber*ITEMS_PER_PAGE,newCallback>(){@Overrid

java - 使用 Gson 将 JSON 转换为 Java 对象

我正在尝试将JSON字符串转换为简单的Java对象,但它返回null。以下是类(class)详情。JSON字符串:{"menu":{"id":"file","value":"File",}}这是可解析的类:publicstaticvoidmain(String[]args){try{Readerr=newInputStreamReader(TestGson.class.getResourceAsStream("testdata.json"),"UTF-8");Strings=Helper.readAll(r);Gsongson=newGson();Menum=gson.fromJson

android - com.google.gson.JsonSyntaxException : java. android 中的 lang.IllegalStateException

*我收到错误:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:需要一个字符串,但在第1行第3列是BEGIN_OBJECT*我的代码:Gsongson=newGson();String[]placelist;placelist=gson.fromJson(result,String[].class);//AssigntheStringarrayasCountrySpinnerControl'sitemsArrayAdapteradapter=newArrayAdapter(getApplication

Android gson 流解析器或 android.util.jsonreader?

我想在Android应用程序中使用流式json解析器,我想知道是使用gson还是android.util.jsonreader库。假设许可和版本兼容性不是问题,我应该更喜欢哪个:我处理数MB的数据。JSON主要由压缩字符串组成,所以我真的不需要对象到JSON的映射。 最佳答案 没关系:android.util.JsonReader和com.google.gson.stream.JsonReader是相同的代码。这两个类具有相同的API和相同的行为。也就是说,还是有一些细微的差别:Android的JsonReader仅在Android

android - 在 Android 上,我应该/可以使用一个单例 Gson 对象而不是到处调用 new Gson() 吗?

我想知道是否应该在我的应用程序中保留一个Gson对象的单例实例来解析json。这种方法有什么问题吗?是过早的优化吗? 最佳答案 我认为这两种变体都可以,但是如果您过于频繁地创建新的Gson实例,则效果不是很好,因为您的应用程序消耗更多内存创建新对象并不便宜在不同地方使用自定义参数创建Gson实例时,您可能会遇到兼容性问题与现在一样,Gson实例是线程安全的,因此您可以通过单例模式或通过DI(依赖注入(inject))获得Gson的单个实例。而且我认为创建几个Gson的实例具有意义,以防您使用不同的API/API版本,例如或者如果您必

android - 使用 Retrofit 时手动解析部分响应

我正在使用一个RESTAPI,该API返回一个JSON文档,该文档以如下方式开头,并包含一个“集合”,其中包含带有“ABC”等字符串ID的项目。注意“routes”字段,它包含一系列名为“ABC”、“ABD”、“ABE”等的字段,但是routes在json中并没有表示为数组,所以所有这些{"status":true,"page":1,"per_page":500,"total_count":1234,"total_pages":8,"total_on_page":500,"routes":{"ABC":[{"value":22313,我正在使用Retrofit,问题是路线字段不是数组(

android - 错误 : incompatible types: GsonConverterFactory cannot be converted to Factory

这个问题在这里已经有了答案:retrofitconvertorfactorycannotaccessGsonConverterFactory(5个答案)关闭7年前。我在设置转换器时尝试使用Retrofit2.0.0.beta2像下面的GsonRetrofitretrofit=newRetrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();在这个gradle抛出错误之后GsonConverterFactorycannotbeconvertedtoFacto

java - Gson反序列化具有不同值类型的json

我正在尝试使用Gson反序列化一个JSONArray,一个值的类型可以变化,值“in_wanted”可以是boolean或JSONObject.in_wanted作为boolean值:{"movies":[{"title":"exampleboolean","in_wanted":false}]}in_wanted作为JSONObject:{"movies":[{"title":"exampleobject","in_wanted":{"profile":{"value":false}}}]}只要对象可用,我就需要它,并且只要“in_wanted”的值为boolean值,我就需要一个反

android - Kotlin 使用 Gson 将 json 字符串转换为对象列表

我在使用Kotlin编写从JSON字符串到对象列表的转换代码时遇到问题。在Java中通常是这样的:Gsongson=newGson();Typetype=newTypeToken>(){}.getType();Listmeasurements=gson.fromJson(json,type);returnmeasurements;但是在Kotlin中,当我这样尝试时:valgson=Gson()valtype:Type=TypeToken>{}.typevalmeasurements:List=gson.fromJson(text,type)returnmeasurementsIDEA

android - 无法解析导入 com.google.api.client.json.gson.GsonFactory

我正在尝试在我的应用中使用GsonFactory类:StudentApi.Builderbuilder=newStudentApi.Builder(AndroidHttp.newCompatibleTransport(),newGsonFactory(),null);但它说cannotresolvesymbol'GsonFactory'我的课上有importimportcom.google.api.client.json.gson.GsonFactory;但是gson无法解析,所以我尝试了Alt-Enter-Findjaronweb但找不到库。我的build.gradle依赖项中有这个