所以从长远来看,我试图在Java为我的顶点项目编写一个提醒应用程序。现在我正在尝试将一些代码写入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"
感谢任何帮助!
此代码适用于我,但我有此导入:
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
因为我使用依赖项com. fasterxml.jackson.core:jackson-datind
(版本2.9.9.3)。
正如Lino所说,org. codehaus.jackson
有点旧。
此外,您可以更改:
private static ObjectMapper mapper;
static {
mapper = new ObjectMapper();
}
通过:
private static ObjectMapper mapper = new ObjectMapper();