2017-04-18 2 views
0

ich durch einen Wert von Jsonutil Code zurückkehren möchten, mit ObjectMapper aber Daten nicht reflektierenUnrecognizedPropertyException: Unbekanntes Feld „Code“ in Android

I Modell verwende, von dem ich ein decription Wert reflektieren und in Spinner hinzufügen möchten

ich habe diesen Fehler:

V/Status code: 201 
04-18 01:56:01.666 7130-7799/vems.visioneering.com.vems V/RESPONSE SERVER COMM :: [{"primaryKey":1,"code":"C1","description":"Class I","isActive":true},{"primaryKey":2,"code":"C2","description":"Class II","isActive":true},{"primaryKey":3,"code":"C3","description":"Class III","isActive":true},{"primaryKey":4,"code":"C4","description":"Class IV","isActive":true},{"primaryKey":5,"code":"C5","description":"Class V","isActive":true},{"primaryKey":6,"code":"C6","description":"Class VI","isActive":true},{"primaryKey":7,"code":"C7","description":"Class VII","isActive":true},{"primaryKey":8,"code":"C8","description":"Class VIII","isActive":true},{"primaryKey":9,"code":"C9","description":"Class IX","isActive":true},{"primaryKey":10,"code":"C10","description":"Class X","isActive":true},{"primaryKey":11,"code":"C11","description":"Class XI","isActive":true},{"primaryKey":12,"code":"C12","description":"Class XII","isActive":true}] 
04-18 01:56:01.666 7130-7130/vems.visioneering.com.vems V/Util Data: {"primaryKey":1,"code":"C1","description":"Class I","isActive":true} 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "code" (class vems.visioneering.com.vems.Model.LKClassData), not marked as ignorable (2 known properties: "description", "primaryKey"]) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at [Source: {"primaryKey":1,"code":"C1","description":"Class I","isActive":true}; line: 1, column: 25] (through reference chain: vems.visioneering.com.vems.Model.LKClassData["code"]) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:817) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:958) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1324) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1302) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:249) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:136) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3562) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2578) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at vems.visioneering.com.vems.utils.JSonUtil.jsonToObject(JSonUtil.java:86) 
04-18 01:56:01.667 7130-7130/vems.visioneering.com.vems W/System.err:  at vems.visioneering.com.vems.fragments.AttendanceFragment.onCreateView(AttendanceFragment.java:94) 

Mein Java-Code wird verwendet, Spinner Daten zu erhalten:

try{ 
      JSONObject msgJSON = new JSONObject(); 
      msgJSON.put("objName", "LKClass"); 
      SharedPreferences sharedPref = context.getSharedPreferences 
        (ApplicationUtils.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE); 
      if (ApplicationUtils.BASE_URL == null) { 
       String response = VEMSServices.getInstance(context).getResponseData(msgJSON.toString(), ApplicationUtils.GET_OBJECT); 
       JSONArray jsonArray = new JSONArray(response); 
       final ArrayList<LKClassData> spn = new ArrayList<>(); 
       for (int i = 0; i < jsonArray.length(); i++) { 
        spn.add((LKClassData) JSonUtil.jsonToObject(jsonArray.getString(i), LKClassData.class)); 

        Log.v("Check Value",spn.toString()); 
        //JSONObject jsonObject = jsonArray.getJSONObject(i); 
        //spn.add(new LKClassData(jsonObject.getString("description"), jsonObject.getString("primaryKey"))); 
       } 
       vSpinner = new VisioneeringSpinner(context); 
       vSpinner.getSpinner(R.id.spinner_stu_Attendance_Class, spn, this.getActivity()); 

Mein JsonUtil Klassencode ist:

public static Object jsonToObject(String jsonData, Class<?> clazz) { 
     Log.v("Util Data",jsonData); 
     try { 
      return mapperObj.readValue(jsonData, clazz); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

My Model-Klasse Daten:

public class LKClassData { 


    public String description; 
    public String primaryKey; 

    @Override 
    public String toString() { 
     return description; 
    } 
} 

Antwort

1

Try @JsonIgnoreProperties(ignoreUnknown = true) der Klasse Hinzufügen LKClassData

@JsonIgnoreProperties(ignoreUnknown = true) 
public class LKClassData { 

    public String description; 
    public String primaryKey; 

    @Override 
    public String toString() { 
     return description; 
    } 
} 
Verwandte Themen