微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在两个 json 文档之间创建合并补丁时出现空指针异常

如何解决在两个 json 文档之间创建合并补丁时出现空指针异常

嗨,我正在使用以下库来生成合并补丁差异。

<dependencies>
    <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
    <dependency>
        <groupId>javax.json</groupId>
        <artifactId>javax.json-api</artifactId>
        <version>1.1</version>
    </dependency>


    <dependency>
        <groupId>org.apache.johnzon</groupId>
        <artifactId>johnzon-core</artifactId>
        <version>1.2.5</version>
    </dependency>

</dependencies>

以下是源和目标 json。 源 json

{
  "firstName": "Krishna","lastName": "Gurram","hobbies": [
    "Cricket","Football"
  ],"address": {
    "city": "Bangalore","state": "Karnataka","country": "India"
  }
}

目标 json

{
  "firstName": "Ram","hobbies": [
    "Football","Chess"
  ],"address": {
    "city": "Amaravathi","state": "Andhra Pradesh","country": "India"
  }
}

我正在使用以下代码段来获取源和目标 json 文档之间的合并补丁。

JsonValue sourceJsonValue = Json.createReader(new StringReader(sourceJson)).readValue();
JsonValue targetJsonValue = Json.createReader(new StringReader(targetJson)).readValue();
JsonMergePatch jsonMergePatch = Json.createMergeDiff(sourceJsonValue,targetJsonValue);

我最终遇到了以下错误

Exception in thread "main" java.lang.NullPointerException
    at org.apache.johnzon.core.JsonMergePatchDiff.diff(JsonMergePatchDiff.java:58)
    at org.apache.johnzon.core.JsonMergePatchDiff.calculateDiff(JsonMergePatchDiff.java:44)
    at org.apache.johnzon.core.JsonProviderImpl.createMergeDiff(JsonProviderImpl.java:226)
    at javax.json.Json.createMergeDiff(Json.java:427)
    at com.sample.app.App.main(App.java:57)

我是否以正确的方式使用 API 来生成合并补丁,还是我遗漏了什么?

参考:https://tools.ietf.org/html/rfc7386

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。