我通过点击url获取json数据。之后我使用Json解析它工作正常并得到结果并在android应用程序中显示。但这次我尝试使用jackson解析器进行快速解析。我得到了这个错误。请帮助我
代码:
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: java.io.StringReader@4155f0b8; 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": "sai@gmail.com",
"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": "johnny_depp@gmail.com",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
}
]}
答案 0 :(得分:0)
是的,你有几个问题。
E.g。
你需要一个包装器
public class Contacts {
public List<ContactPojo> contacts;
}
很少有其他问题
public class ContactPojo {
Phone phone;
}
public class Phone {
String mobile;
String home;
String office;
}