java - Jolt 不会将 json 转换为另一个 json

标签 java json spring jolt

我正在 Ubuntu 上使用 Java 11、Spring Boot 2.1.9 和 jolt(核心和 utils)0.1.1 编写一个项目

我有下一个 JSON 源:

{
  "restaurant": {
    "rating": {
      "value": 3
    },
    "address": {
      "value": "India"
    }
  }
}

我有以下规范文件:

[
  {
    "operation": "shift",
    "spec": {
      "restaurant": {
        "rating": {
          "value": "Restaurant Rating"
        }
      }
    }
  }
]

在输出中我期望下一个 json:

{
  "Restaurant Rating" : 3
}

我编写了一个简单的测试来检查这一点:

List<Object> specs = JsonUtils.jsonToList(Files.readString(Paths.get("path/to/spec.json")));
Chainr converter = Chainr.fromSpec(specs);
Object inputJSON = JsonUtils.toJsonString(Files.readString(Paths.get("path/to/example.json")));
Object transformedOutput = converter.transform(inputJSON);
System.out.println(JsonUtils.toPrettyJsonString(transformedOutput));

但是变量transformedOutput始终为null

请告诉我我做错了什么。

最佳答案

jsonToObject 将获取输入 json 作为对象并使用规范进行映射

    List specs = JsonUtils.jsonToList(Files.readString(Paths.get("path/to/spec.json")));
    Chainr converter = Chainr.fromSpec(specs);
    Object inputJSON = JsonUtils.jsonToObject(Files.readString(Paths.get("path/to/example.json")));
    Object transformedOutput = converter.transform(inputJSON);
    System.out.println(JsonUtils.toPrettyJsonString(transformedOutput));

----输出-----

{ “餐厅评分”:3 }

关于java - Jolt 不会将 json 转换为另一个 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58316053/

相关文章:

java - 如何在 HttpUrlconnection java 中重试 url n 次?

java - dhtmlxform.send 响应在警报提示中正确显示,但字符串比较不起作用

json - Spark 将 StructType/JSON 转换为字符串

javascript - 代码不会验证

c++ - 如何在 C++ 中使用 casablanca 获取 JSON 对象值

java - Spring Security 3.0.3 及自定义认证处理过滤器

java - 为 querydsl-maven-plugin 设置命名策略

java - 使用 Jersey 在 Restful Resource 中使用多个 @PathParams 时未发现注入(inject)源错误

java - 使用spring jpa获取数据

java - Spring Security 5 Spring MVC Oauth 2密码授予类型不返回带有/oauth/token的 token