android - 比较java中的两个gson转换对象

标签 android json gson android-volley

我想比较两个Gson转换对象的key是否相同

例子: 我在本地存储的 customer.json 文件中有一个 JSON 对象:

{
  name:"John",
  age:25
}

有一个 API 可以从我正在转换为 Customer POJO 的自定义 volley 请求中提供相同的 JSON 数据。

现在我想判断本地存储的JSON数据和API接收到的JSON数据是否相同。

我正在读取 JSON 文件并将其转换为 Customer,如下所示:

InputStream is = getContext().getResources().openRawResource(
    R.raw.customerjson);
Gson gson = new Gson();
Reader reader = null;
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
Customer customerLocal = gson.fromJson(reader, Customer.class);

现在我有两个转换后的 Customer 对象(customerLocalcustomerServer)。

一切正常;问题是我不知道如何比较两个 Gson 转换后的对象。请注意,我只想比较键(即 POJO 中的变量名,而不是值)。

非常感谢任何帮助。

最佳答案

我已经解决了。通过将 gson 转换后的对象转换回 json,如下所示

JSONObject serverJsonObject = new JSONObject(gson.toJson(customerResponse));

然后将 serverJsonObect 与本地存储的 json 对象进行比较 assertJsonEquals 方法来自 JsonUnit Library

我的测试用例现在运行良好。

关于android - 比较java中的两个gson转换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34633122/

相关文章:

Android DDMS - 将调用发送到实际设备

android - 使用编译 'com.google.android.support:wearable:2.0.4' 时出现以下错误,但我没有使用 26.0.0

javascript - 当数据 token 包含所有数字(如 "4730")时, Bootstrap 选择组件中的搜索不起作用

javascript - 使用 javascript 重新加载 json 属性,无需硬重置网页

java - Spring @RequestBody 不使用 pojo?

java - 有没有办法从 json 响应创建 bean 类

java - 出现键盘时停止 GUI 压缩?

java - Android Java ArrayList 尽可能大的尺寸

java - 第一次在 App Engine 上调用 Jersey 服务时出现异常

android - 在对象和数组中使用具有相同名称的 GSON 进行 JSON 解析