Я хочу сделать преобразование структуры JSON с помощью толчка, но я получаю ошибку - PullRequest
0 голосов
/ 17 октября 2019

Я хочу получить преобразование JSON, используя толчок

Я пытаюсь в своем затмении использовать maven

package com.transform;

import java.util.List;
import com.bazaarvoice.jolt.Chainr;
import com.bazaarvoice.jolt.JsonUtils;

public class transform {
    public static void main(String[] args) throws Exception {
        List<Object> specs =  
        JsonUtils.classpathToList("com.transform//src//main//java//jsoinfiles//spec.json");
        Chainr chainr = Chainr.fromSpec(specs);
        Object inputJSON =  JsonUtils.classpathToObject("com.transform//src//main//java//jsoinfiles//input.json");
        Object transformedOutput = chainr.transform(inputJSON);

        System.out.println(JsonUtils.toPrettyJsonString(transformedOutput));
    }
}

Когда я запускаю приведенный выше код, я получаю следующее исключение;

Exception in thread "main" java.lang.RuntimeException: Unable to load 
 JSON map from classPath : 
  com.transform//src//main//java//jsoinfiles//spec.json
at 
com.bazaarvoice.jolt.JsonUtilImpl.classpathToList(JsonUtilImpl.java:225)
at com.bazaarvoice.jolt.JsonUtils.classpathToList(JsonUtils.java:165)
at com.transform.transform.main(transform.java:9)

Ответы [ 3 ]

0 голосов
/ 21 октября 2019

Я бы предложил реструктурировать ваш проект и соответственно обновить ваш код:

Структура:

./src/main/java/com/transform/App.java
./src/main/resources/jsoinfiles/spec.json
./src/main/resources/jsoinfiles/input.json

Затем используйте код:

package com.transform;

import java.util.List;
import com.bazaarvoice.jolt.Chainr;
import com.bazaarvoice.jolt.JsonUtils;

public class App {
    public static void main(String[] args) throws Exception {
        List<Object> specs =  
        JsonUtils.classpathToList("/jsoinfiles/spec.json");
        Chainr chainr = Chainr.fromSpec(specs);
        Object inputJSON =  JsonUtils.classpathToObject("/jsoinfiles/input.json");
        Object transformedOutput = chainr.transform(inputJSON);

        System.out.println(JsonUtils.toPrettyJsonString(transformedOutput));
    }
}

Это основано наJSONUtilsTest в проекте jolt:

https://github.com/bazaarvoice/jolt/blob/master/json-utils/src/test/java/com/bazaarvoice/jolt/JsonUtilsTest.java#L131-L133

0 голосов
/ 07 ноября 2019

Причиной возникновения ошибки является путь к классу, который вы упомянули в своем коде. используйте структуру ниже для определения вашего пути к классу, и вы определенно получите разрешение ошибки и желаемый результат.

public class App {
    public static void main(String[] args) throws Exception {
        List<Object> specs =  
        JsonUtils.classpathToList("/jsoinfiles/spec.json");
        Chainr chainr = Chainr.fromSpec(specs);
        Object inputJSON =  JsonUtils.classpathToObject("/jsoinfiles/input.json");
        Object transformedOutput = chainr.transform(inputJSON);

        System.out.println(JsonUtils.toPrettyJsonString(transformedOutput));
    }
}
0 голосов
/ 17 октября 2019

Это проблема пути к классу, определенно. Ваш код: Список specs =
JsonUtils.classpathToList ("com.transform // src // main // java // jsoinfiles // spec.json");Chainr chainr = Chainr.fromSpec (спецификации);Объект inputJSON = JsonUtils.classpathToObject ("com.transform // src // main // java // jsoinfiles // input.json"

Там вы используете com. Transform

Удалите это1. Используйте следующие вещи.

// src // main // java // jsoinfiles // input.json

и // src // main // java // jsoinfiles //spec.json

Затем проверьте.

...