我迷失了思想,竭尽所能进行搜索并提出可能的解决方案。我已经尝试了大多数答案,这些答案可能与我要实现的目标有关,但还是没有运气。
为了阐明我的问题,我收到了API的回复
{
"profileList": [
{
"id": "7mmfHGLc0MGtZeQNno/WFqDjlAPj26CS",
"name": "Alexandria Victoria Maxene Kluber van de Gr\\\"oot\""
}
]
}
我想要实现的是获取“名称”字段值,而不会对该值进行转义。因为在我当前的设置中,反序列化过程后从响应中得到的是Alexandria Victoria Maxene Kluber van de Gr\"oot""
我让Retrofit处理API请求和响应,这就是我要得到的,我目前不希望由于特定原因而放弃我的处理程序,但我希望有人可以指出正确的方向。 这是我的Retrofit Builder代码:
Gson gson = new GsonBuilder()
.disableHtmlEscaping()
.create();
m_builder = new Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create(gson));
谢谢。
答案 0 :(得分:0)
您应该尝试在JsonPrimitive
中使用POJO
。参见以下示例:
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonPrimitive;
import java.io.File;
import java.io.FileReader;
import java.util.List;
public class GsonApp {
public static void main(String[] args) throws Exception {
File jsonFile = new File("./resource/test.json").getAbsoluteFile();
Gson gson = new GsonBuilder().create();
System.out.println(gson.fromJson(new FileReader(jsonFile), Profiles.class));
}
}
class Profiles {
private List<Profile> profileList;
// getters, setters, toString
}
class Profile {
private String id;
private JsonPrimitive name;
// getters, setters, toString
}
上面的JSON
有效负载打印示例:
Profiles{profileList=[Profile{id='7mmfHGLc0MGtZeQNno/WFqDjlAPj26CS', name='"Alexandria Victoria Maxene Kluber van de Gr\\\"oot\""'}]}