Java объект для Json не работает с помощью Jackson Object Mapper - PullRequest
1 голос
/ 28 апреля 2020

поэтому в долгосрочной перспективе я пытаюсь написать приложение-напоминание в Java для моего проекта capstone. Сейчас я пытаюсь записать некоторый код в файл json, чтобы сохранить информацию, но я столкнулся с этим исключением. У меня есть файлы jar, импортированные в мой проект, поэтому я не уверен, почему он не может получить к нему доступ. Что я могу сделать, чтобы это исправить?

Вот мой java путь сборки для проекта. Я использую eclipse, и по некоторым причинам у него есть этот путь к модулю и путь к классу. Я не знаю разницы между ними, но выдает ошибку, если я помещаю jar-файлы в путь модуля.

package util;

import java.io.IOException;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class JsonUtil {
    private static ObjectMapper mapper;
    static {
        mapper = new ObjectMapper();
    }
    public static String convertJavaToJson(Object object)
    {
        String jsonResult = "";
        try {
            jsonResult = mapper.writeValueAsString(object);
        } 
        catch (JsonGenerationException e) {
            System.out.println("1 Exception Occured while converting Java Object into Json -->" + e.getMessage());
        }
        catch (JsonMappingException e) {
            System.out.println("2 Exception Occured while converting Java Object into Json -->" + e.getMessage());
        }
        catch (IOException e) {
            System.out.println("3 Exception Occured while converting Java Object into Json -->" + e.getMessage());
        }
        catch (Exception e) {
            System.out.println("4 Exception Occured while converting Java Object into Json -->" + e.getMessage());
        }
        return jsonResult;
    }
}

Исключение исходит из последнего блока catch

4 Exception Occured while converting Java Object into Json -->Failed to instantiate standard serializer (of type org.codehaus.jackson.map.ser.std.NullSerializer): class org.codehaus.jackson.map.ser.BasicSerializerFactory cannot access a member of class org.codehaus.jackson.map.ser.std.NullSerializer with modifiers "private"

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 28 апреля 2020

Этот код работает для меня, но у меня есть этот импорт:

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

, потому что я использую зависимость com.fasterxml.jackson.core:jackson-databind (версия 2.9.9.3).

Как сказал Лино, org.codehaus.jackson является старым.

Также вы можете изменить:

private static ObjectMapper mapper;
    static {
        mapper = new ObjectMapper();
    }

на:

private static ObjectMapper mapper = new ObjectMapper();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...