2014-02-15 95 views
1

我通過點擊url獲取json數據。之後,我使用Json解析它工作正常,得到了結果並顯示在android應用程序中。但這次我試圖傑克遜解析器快速parsing.I得到這個error.please幫我jackson.map.exc.UnrecognizedPropertyException:無法識別的字段,未標記爲可忽略的

代碼:

ObjectMapper mapper=new ObjectMapper(); jacksonObj=mapper.readValue(jsonResponse,ContactPojo.class); 

POJO:

public class ContactPojo { 

    String name,email,gender,mobileno; 

    public String getName() { 
     return name; 
    } 

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

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public String getGender() { 
     return gender; 
    } 

    public void setGender(String gender) { 
     this.gender = gender; 
    } 

    public String getMobileno() { 
     return mobileno; 
    } 

    public void setMobileno(String mobileno) { 
     this.mobileno = mobileno; 
    } 

} 

錯誤:

02-15 17:20:20.060: W/System.err(3983): org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "contacts" (Class com.example.sampleuserlogin.ContactPojo), not marked as ignorable 
02-15 17:20:20.060: W/System.err(3983): at [Source: [email protected]; line: 2, column: 18] (through reference chain: com.example.sampleuserlogin.ContactPojo["contacts"]) 
02-15 17:20:20.065: W/System.err(3983):  at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:267) 
02-15 17:20:20.065: W/System.err(3983):  at org.codehaus.jackson.map.deser.std.StdDeserializer.reportUnknownProperty(StdDeserializer.java:673) 
02-15 17:20:20.070: W/System.err(3983):  at org.codehaus.jackson.map.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:659) 
02-15 17:20:20.070: W/System.err(3983):  at org.codehaus.jackson.map.deser.BeanDeserializer.handleUnknownProperty(BeanDeserializer.java:1361) 
02-15 17:20:20.075: W/System.err(3983):  at org.codehaus.jackson.map.deser.BeanDeserializer._handleUnknown(BeanDeserializer.java:725) 
02-15 17:20:20.075: W/System.err(3983):  at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:703) 
02-15 17:20:20.080: W/System.err(3983):  at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580) 
02-15 17:20:20.085: W/System.err(3983):  at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732) 
02-15 17:20:20.085: W/System.err(3983):  at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1863) 
02-15 17:20:20.085: W/System.err(3983):  at com.example.sampleuserlogin.JsonParser.jsonParser(JsonParser.java:50) 
02-15 17:20:20.090: W/System.err(3983):  at com.example.sampleuserlogin.RetrieveLogindata$Response.onPostExecute(RetrieveLogindata.java:69) 
02-15 17:20:20.095: W/System.err(3983):  at com.example.sampleuserlogin.RetrieveLogindata$Response.onPostExecute(RetrieveLogindata.java:1) 
02-15 17:20:20.095: W/System.err(3983):  at android.os.AsyncTask.finish(AsyncTask.java:602) 
02-15 17:20:20.095: W/System.err(3983):  at android.os.AsyncTask.access$600(AsyncTask.java:156) 
02-15 17:20:20.095: W/System.err(3983):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615) 
02-15 17:20:20.095: W/System.err(3983):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-15 17:20:20.100: W/System.err(3983):  at android.os.Looper.loop(Looper.java:137) 
02-15 17:20:20.100: W/System.err(3983):  at android.app.ActivityThread.main(ActivityThread.java:4507) 
02-15 17:20:20.100: W/System.err(3983):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-15 17:20:20.100: W/System.err(3983):  at java.lang.reflect.Method.invoke(Method.java:511) 
02-15 17:20:20.100: W/System.err(3983):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
02-15 17:20:20.100: W/System.err(3983):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
02-15 17:20:20.105: W/System.err(3983):  at dalvik.system.NativeStart.main(Native Method) 

JSON:

{ 

    "contacts": [ 

     { 

       "id": "c200", 

       "name": "sai ram", 

       "email": "[email protected]", 

       "address": "xx-xx-xxxx,x - street, x - country", 

       "gender" : "male", 

       "phone": { 

        "mobile": "+91 0000000000", 

        "home": "00 000000", 

        "office": "00 000000" 

       } 

     }, 

     { 

       "id": "c201", 

       "name": "Johnny Depp", 

       "email": "[email protected]", 

       "address": "xx-xx-xxxx,x - street, x - country", 

       "gender" : "male", 

       "phone": { 

        "mobile": "+91 0000000000", 

        "home": "00 000000", 

        "office": "00 000000" 

       } 

     } 
]} 
+0

你'ContactPojo'類不在JSON根...您的JSON是財產接觸的對象,它是數組你pojo請在這裏提問之前閱讀一些教程 – Selvin

回答

0

是啊,你有幾個問題。

E.g.

您需要的包裝

public class Contacts { 
    public List<ContactPojo> contacts; 
} 

很少有其他問題

public class ContactPojo { 
    Phone phone; 
} 

public class Phone { 
    String mobile; 
    String home; 
    String office; 
} 
相關問題