2016-06-13 6 views
0

Der Fehlercode:jackson java Unerkannte Feld nicht markiert als ignorable

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: 
Unrecognized field "id" (Class JacksonTester$Student), not 
marked as ignorable 
at [Source: [[email protected]; line: 2, column: 8] 
(through reference chain: Student["id"]) 

ich die unten JSON-Datei:

{ 
    "id": "0", 
    "title": "0", 
    "externalId": "0", 
    "externalLink": "0", 
    "sourceApplication": "0", 
    "content": "0", 
    "summaryContent": "0", 
    "publishedDate": "0", 
    "harvestDate": "0", 
    "languageId": "0", 
    "regionId": "0", 
    "postStatus": "0" 
} 

und mein Code

JacksonTester.java :

public class JacksonTester { 
public static void main(String args[]) { 

    ObjectMapper mapper = new ObjectMapper(); 

    // map json to student 

    try { 

     byte[] jsonData = Files.readAllBytes(Paths.get("output_json.txt")); 
     Student student = mapper.readValue(jsonData, Student.class); 
     System.out.println(student); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

static class Student { 
    String id; 
    String title; 
    String externalId; 
    String externalLink; 
    String sourceApplication; 
    String content; 
    String summaryContent; 
    String publishedDate; 
    String harvestDate; 
    String languageId; 
    String regionId; 
    String postStatus; 

    public Student() { 
    } 

} 
} 

Antwort

0

Jackson hat keinen Zugriff auf die Felder von Student.

Implementieren Sie die öffentlichen Getter und Setter für Student und es funktioniert.

1

Sie müssen entweder Setter für diese Felder haben oder einen Konstruktor, der die Felder als Parameter (+ approriate Anmerkungen oder -parameters von Java 8 und jackson-Modul-Parameter-Namen Modul) akzeptiert:

public static class Student { 
    ... 
    String postStatus; 

    public setPostStatus(postStatus) { 
     this.postStatus = postStatus; 
    } 

    ... 
} 
Verwandte Themen