是否可以使用本地文件路径或json字符串代替url?

2022-03-03 00:00:00 json android java retrofit2

您好,我正在开发一个使用retrofitAPI从服务器获取响应的Android应用程序。Retrofit自动解析json响应并创建POJO类的对象。我正在将json存储到sqlite中,如果没有连接到互联网,从sqlite调用json会遇到困难,必须手动解析json。

有没有办法使用改良库来解析json并从json字符串或文件路径生成pojo?我的代码是在这里从url:

获取的
@FormUrlEncoded
@POST("getResponse")
Observable<UserResponse> getResponse(@Field("token") String token);

如果没有连接互联网,我想要这样的东西。

@FromStringEncoded
Observable<UserResponse> getResponseOffline(@Field("token") String token);

谢谢。


解决方案

只需使用Google's GSON库,即可将json转换为POJO,反之亦然。从sqlite获取json并使用gson对其进行分析。

Gson gson=new Gson();
UserResponse userResponse= gson.fromJson(jsonInStringFromDb,UserResponse.class);

您还可以使用Gson从文件分析JSON

JSON to Java对象,从文件中读取。

Gson gson = new Gson();
Staff staff = gson.fromJson(new FileReader("D:\file.json"), Staff.class);

相关文章