当前位置: 首页 > 知识库问答 >
问题:

JSON解析抛出异常:

轩辕乐邦
2023-03-14

我有一个包含OClass对象的列表。我想创建这个对象的JSON。下面是我的代码:

public void getClasss() {

    // returns all the top classes present in the ontology.

    classlist = new ArrayList<OClass>();     
    Set<OClass> topclasses = ontology.getOClasses(true);
    for (OClass oClasses : topclasses) {                
        classlist.add(oClasses);                
    }   

    OntoCreationClass ocreat = new OntoCreationClass();

    ocreat.OntoCreation(classlist);   
}

public class OntoCreationClass {    
    public static String data;
    public void OntoCreation(List<OClass> list) {

        System.out.println(list.get(0));

        OutputStream out = new ByteArrayOutputStream();

        ObjectMapper mapper = new ObjectMapper();

        try {
            mapper.writeValue(out, list);
        } catch (JsonGenerationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

     }
}

com.fasterxml.jackson.databind.jsonMappingException:未发现用于com.ontotext.trree.owlim_ext.r类的序列化程序,也未发现用于创建BeanSerializer的属性(为了避免异常,禁用serializationconfig.serializationfeature.fail_on_empty_beans))(通过引用链:java.util.arraylist[0]->gate.creole.ontology.impl.oclassimpl[“ontology”]impl.sesame.sesameManager[“repositoryconnection”]-org.openrdf.repository.sail.sailrepositoryconnection[“repository”]-org

.openrdf.repository.sail.SailRepository["sail"]-com.ontotext.trree.owlim_ext.SailImpl["pool"])

>

我如何解决这个错误?有人能帮忙吗?

共有1个答案

富凯旋
2023-03-14

如果类中字段的访问修饰符为private,则必须放置Setter和Getter以使该类可序列化。

查看以下示例代码,以存储Person类的对象列表:

1-人员类:

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
List<Person> persons = new ArrayList<Person>();
persons.add(new Person("Mike", 26));
persons.add(new Person("David", 20));
persons.add(new Person("Sara", 21));
persons.add(new Person("Amanda", 15));

3-那么现在就可以使用writeValue:

ObjectMapper objectMapper = new ObjectMapper();
    try {
        objectMapper.writeValue(new FileOutputStream(jsonPath), persons);
    } catch (IOException e) {
        e.printStackTrace();
    }

4-最后,您可以看到JSON文件:

[{"name":"Mike","age":26},{"name":"David","age":20},{"name":"Sara","age":21},{"name":"Amanda","age":15}]
 类似资料:
  • 我正在尝试用jackson SAX解析器实现JSON数组迭代器(请不要问为什么)。我的应用程序应该处理巨大的文件(高达5 MiB),这是一个问题。 这就是我初始化JsonParser和调用迭代器创建的方式。我创建了InputStream,使用放在\raw文件夹中的JSON初始化。 这是我的迭代器类。 它似乎运转良好...哦,等等。 我在某个巨大的文件中有3个部分(命名数组)。它首先成功解析(一个很

  • 我正在尝试用NLTK中的Malt Parser解析句子。当我执行时,它给出了一个错误,退出代码为1。我在终端上执行了java命令,它给出了“未找到”类异常,我不明白现在是怎么了? java-Xmx1024m-jar/usr/local/bin/malt。jar-w/home/abc/maltparser-1.7.2-c engmalt.linear-1.1-i/home/abc/martparse

  • 抛出异常的行为是否可能抛出不同的异常? 为了抛出异常,必须(可选地)分配新对象,并调用其构造函数(隐式调用fillinstacktrace)。在某些情况下,听起来像addSupressed也被称为。那么如果没有足够的内存会发生什么呢?JVM是否需要预分配内置异常?例如,(1/0)会抛出OutOfMemoryError而不是ArithmeticException吗? 此外,构造函数是一个方法调用,因

  • 本文向大家介绍JAVA异常处理捕获与抛出原理解析,包括了JAVA异常处理捕获与抛出原理解析的使用技巧和注意事项,需要的朋友参考一下 JAVA 异常 当代码运行出现错误导致程序终止运行或出现错误情况的状况,就是异常。异常不是指语法错误,即不属于编译错误,只有运行的程序才会有异常。 这个时候,JAVA 就提供了优秀的处理方法:异常处理 异常处理能让程序在异常发生时,按照异常处理设定的逻辑对异常进行处理

  • 我创建了一个基本的.NET framework MVC web应用程序,并添加了使用Cloud Watch logs SDK向AWS Cloud Watch logs发送日志的逻辑,它在LocalSystem/LocalHost中运行良好,但当我对映像进行对接时,就开始出现异常。请指导我解决这个问题。 Amazon.Runtime.AmazonServiceException:“引发了状态为Nam

  • com.fasterxml.jackson.databind.jsonMappingException:属性“wallpaper”的setter定义冲突:在RializerCache._CreateAndCache2(deserializerCache.java:298)...com.fasterxml.jackson.databind.objectMapper._ReadMapandClose(