Android 什么是';json响应以'/';字符';方法

Android 什么是';json响应以'/';字符';方法,android,json,Android,Json,我有这个链接: 这是一些奇怪的说明:请注意,每个json响应都以“/”字符开头。您需要相应地解析它 这是什么意思实际上,使用这个json,我必须在stack cardview中显示数据。 我尝试过这个(我应该直接将这个类粘贴到我的Android studio modal类中吗?为什么会有hashmap?) package.com.example; 导入java.util.HashMap; 导入java.util.Map; 导入com.fasterxml.jackson.annotation.Js

我有这个链接:

这是一些奇怪的说明:请注意,每个json响应都以“/”字符开头。您需要相应地解析它

这是什么意思实际上,使用这个json,我必须在stack cardview中显示数据。

我尝试过这个(我应该直接将这个类粘贴到我的Android studio modal类中吗?为什么会有hashmap?)

package.com.example;
导入java.util.HashMap;
导入java.util.Map;
导入com.fasterxml.jackson.annotation.JsonAnyGetter;
导入com.fasterxml.jackson.annotation.JsonAnySetter;
导入com.fasterxml.jackson.annotation.JsonIgnore;
导入com.fasterxml.jackson.annotation.JsonInclude;
导入com.fasterxml.jackson.annotation.JsonProperty;
导入com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
“身份证”,
“文本”
})
公共类数据{
@JsonProperty(“id”)
私有字符串id;
@JsonProperty(“文本”)
私有字符串文本;
@杰索尼奥雷
私有映射additionalProperties=new HashMap();
@JsonProperty(“id”)
公共字符串getId(){
返回id;
}
@JsonProperty(“id”)
公共无效集合id(字符串id){
this.id=id;
}
@JsonProperty(“文本”)
公共字符串getText(){
返回文本;
}
@JsonProperty(“文本”)
公共void setText(字符串文本){
this.text=文本;
}
@JsonAnyGetter
公共映射getAdditionalProperties(){
返回此。附加属性;
}
@JSONANYSETER
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
}
-----------------------------------com.example.example.java-----------------------------------
包com.example;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入com.fasterxml.jackson.annotation.JsonAnyGetter;
导入com.fasterxml.jackson.annotation.JsonAnySetter;
导入com.fasterxml.jackson.annotation.JsonIgnore;
导入com.fasterxml.jackson.annotation.JsonInclude;
导入com.fasterxml.jackson.annotation.JsonProperty;
导入com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
“数据”
})
公开课范例{
@JsonProperty(“数据”)
私有列表数据=null;
@杰索尼奥雷
私有映射additionalProperties=new HashMap();
@JsonProperty(“数据”)
公共列表getData(){
返回数据;
}
@JsonProperty(“数据”)
公共无效设置数据(列表数据){
这个数据=数据;
}
@JsonAnyGetter
公共映射getAdditionalProperties(){
返回此。附加属性;
}
@JSONANYSETER
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
}
“/”
字符可能会在转换为Python中的
字符串
格式时出现。因此,他们可能会使用
Flask
发送此
Json
。然而,这不是问题。只需在解析之前删除第一个元素

if (text != null && text.charAt(0).toString().equals("/")) {
    text = text.subString(1, text.length())
}
最初的回答

要解析无效的JSON或字符串或JSONP响应,请使用ScalarConverterFactory。

要解析JSON响应,请使用GsonConverterFactory

确保您的gradle中有以下依赖项:

implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
//For serialising JSONP add converter-scalars
implementation 'com.squareup.retrofit2:converter-scalars:2.1.0'
//An Adapter for adapting RxJava 2.x types.
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
在构建Gson时,添加ConverterFactory进行改装并使用setLenient(),以消除错误
JSON文档未完全使用。

val gson = GsonBuilder()
            .setLenient()
            .create()

val retrofit = Retrofit.Builder()
            .baseUrl("http://api.flickr.com/")
            .client(builder.build())
            .addConverterFactory(ScalarsConverterFactory.create()) //important
            .addConverterFactory(GsonConverterFactory.create(gson))
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build()

@GET("end-point/to/some/jsonp/url")
fun getJsonpData() : Observable<String>

这是关于java和android的。没有Python。我还必须将这些数据输入Android。我该怎么做?我试着使用:@PoojaSingh您的服务器正在使用Python返回这个
Json
字符串。
val gson = GsonBuilder()
            .setLenient()
            .create()

val retrofit = Retrofit.Builder()
            .baseUrl("http://api.flickr.com/")
            .client(builder.build())
            .addConverterFactory(ScalarsConverterFactory.create()) //important
            .addConverterFactory(GsonConverterFactory.create(gson))
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build()

@GET("end-point/to/some/jsonp/url")
fun getJsonpData() : Observable<String>
SomeDataModel model = Gson().fromJson<SomeDataModel>(jsonResponse,
            SomeDataModel::class.java)