1

I want parse this json structure

I inspierer this tutorial [how parse json file with jackson in android][http://www.tutos-android.com/parsing-json-jackson-android]

"Categorie": [
    {
        "typecategorie" : "Country",
        "valeurcategorie":  ["Afghanistan","Albania","Zambia","Zimbabwe"]
    },
    {
        "typecategorie": "Year",
        "valeurcategorie": ["1911","1912","1913","1960","1961","1962","1963",,"2054"]
    },
    {
        "typecategorie": "Number",
        "valeurcategorie": ["1","2","3","4","5","6","7","8","9","10","11"]
    }]

I use this class

    public class Categorie {

    private String typecategorie;
    private List<String> valeurcategorie;

    public Categorie(){
        super();
        this.typecategorie = "";
        this.valeurcategorie = new ArrayList<String>();
    }

    public Categorie(String typecategorie,ArrayList<String> valeurcategorie ){
        super();
        this.typecategorie = typecategorie;
        this.valeurcategorie.addAll(valeurcategorie);

    }

    public List<String> getValCategorie(){
        return this.valeurcategorie;
    }
    public String gettypecategorie(){
        return typecategorie;
    }
    public void settypecategorie(String typecategorie){
        this.typecategorie = typecategorie;
    }

}

and this code for load my object

public void LoadJson(String fileName) {
        try {
            LoadFile(fileName);
            // InputStream inputStream = urlConnection.getInputStream();
            jp = jsonFactory.createJsonParser(jsonFile);
            categories = objectMapper.readValue(jp, Categories.class);
            categorieList = categories.get("categorie");
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

but I get this error code

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "valeurcategorie" (Class fr.lilperso.worldcupquizz.Categorie), not marked as ignorable
 at [Source: /mnt/sdcard/worldCupQuizz/categorie.json; line: 5, column: 24] (through reference chain: fr.lilperso.worldcupquizz.Categorie["valeurcategorie"])
A. K.
  • 11
  • 1

2 Answers2

1

You need a setter for valeurcategorie. Add this to your Categories class:

public void setValeurcategorie(List<String>  valeurcategorie) {
    this.valeurcategorie = valeurcategorie;
}
Sam Berry
  • 7,394
  • 6
  • 40
  • 58
0

You are trying to deserialize a list/array as a single object with

categories = objectMapper.readValue(jp, Categories.class);

Instead of above Categories.class, you must use Categories[].class if you are using an array or the TypeReference for list. See

How to use Jackson to deserialise an array of objects

Community
  • 1
  • 1
ac3
  • 196
  • 2