java - JSON解析抛出异常:

标签 java json

我有一个包含 OClass 对象的列表。我想创建这个 Objects 的 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();
        }

     }
}

异常(exception)是:

com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class com.ontotext.trree.owlim_ext.r and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.ArrayList[0]->gate.creole.ontology.impl.OClassImpl["ontology"]-gate.creole.ontology.impl.sesame.OWLIMOntology["service"]-gate.creole.ontology.impl.sesame.OntologyServiceImplSesame["sesameManager"]-gate.creole.ontology.impl.sesame.SesameManager["repositoryConnection"]-org.openrdf.repository.sail.SailRepositoryConnection["repository"]-org

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

>

如何解决这个错误?有人可以帮忙吗?

最佳答案

如果类中字段的访问修饰符是私有(private),那么您必须放置Setter 和Getter 以使该类可序列化。

查看此示例代码来存储 Person 类的对象列表:

1- Person 类别:

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;
    }
}

2- 将 Person 对象添加到 List 中:

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}]

关于java - JSON解析抛出异常:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36978849/

相关文章:

java - 动态选择 Activity 内的单选按钮 View

javascript - 使用 Ajax 和 JQuery 从 PHP 文件获取 JSON 数据

php - 表单提交停止显示 JSON 对象

javascript - javascript 对象和 json 数据等效吗?

java - 不兼容的类型( boolean 值/字符串)

java - Eclipse 中出现语法错误! char 位于 javascript 脚本内的 jSTL 标记中

java - JPA 中的多对多映射

java - 双色椭圆形

python - 如何在与现有记录集成时使用递归嵌套字典

json - 如何将漂亮的 JSON 放入 REST api 中