【问题标题】:Jolt returns null after transforming but same works at http://jolt-demo.appspot.com/#inceptionJolt 在转换后返回 null 但同样适用于 http://jolt-demo.appspot.com/#inception
【发布时间】:2023-01-16 21:11:47
【问题描述】:

我正在尝试在 json 以下进行转换

{
  "id": 123,
  "name": {
    "firstName": "shiva",
    "lastName": "kumar"
  },
  "dateOfBirth": "11/09/2012",
  "emailId": "mymail@gmail.com",
  "address": {
    "addressLine1": "blr",
    "addressLine2": "KA"
  },
  "salary": 12334
}

{
  "id" : 123,
  "email" : "mymail@gmail.com",
  "salary" : 12334,
  "fullname" : {
    "firstName" : "shiva",
    "lastName" : "kumar"
  },
  "fullAdress" : "blr KA"
}

代码:下面的代码只返回null

private JSONObject tranformRequest(String json, String specFile){

        URI uri = Thread.currentThread().getContextClassLoader().getResource(specFile).toURI();
        String jsonSpec = Files.readAllLines(Paths.get(uri)).stream().collect(Collectors.joining());
        JSONArray jsonArray = new JSONArray(jsonSpec);
        List<Map<String, Object>> list = new ArrayList<>();
        for(int i = 0 ; i < jsonArray.length();i++){
            list.add(jsonArray.getJSONObject(i).toMap());
        }
        Chainr chainr = Chainr.fromSpec(list);//  JsonUtils.classpathToList( "/path/to/chainr/spec.json" );

        Object output = chainr.transform( json );

        return (JSONObject) output;
    }

pom.xml

     <dependency>
        <groupId>com.bazaarvoice.jolt</groupId>
        <artifactId>jolt-core</artifactId>
        <version>0.1.7</version>
    </dependency>

[

【问题讨论】:

    标签: java json java-8 jolt


    【解决方案1】:

    我不太了解 java,但是对于 jolt 转换,您可以使用下面的 jolt 规范来实现所需的输出。

    [
      {
        "operation": "shift",
        "spec": {
          "id": "&",
          "name": "fullname",
          "emailId": "email",
          "salary": "salary",
          "address": {
            "*": "&1"
          }
        }
      },
      {
        "operation": "modify-overwrite-beta",
        "spec": {
          "*": "=join( ' ',@0)"
        }
      }
    ]
    

    【讨论】:

      猜你喜欢
      • 2021-10-05
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多