Jolt не превращайте JSON в другого JSON - PullRequest
0 голосов
/ 10 октября 2019

Я пишу проект с использованием Java 11, весенней загрузки 2.1.9 и jolt (core и utils) 0.1.1 в Ubuntu

У меня есть следующий 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

Пожалуйста, скажите мне, что я делаю неправильно.

1 Ответ

1 голос
/ 10 октября 2019

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}

...