JSON StringをPOJOクラスに解析したいがエラーが発生する。ObjectMapperを使用してPOJOからJSON値を読み取る際の問題
そして たちはJavaでメソッドから2つの値を返すことができ
Stringデータ
String PostcreatedMessage = "..."; // see JSON value below
{
"home_page":"/desk",
"message":"Logged In",
"full_name":"Shoaib Shaikh"
}
Main.class
LoginR loginR=new LoginR();
ObjectMapper mapper=new ObjectMapper();
loginR=mapper.readValue(PostcreatedMessage,LoginR.class);
System.out.println(loginR.getHomePage());
System.out.println(loginR.getMessage());
System.out.println(loginR.getFullName());
parsejacker.class
public class parsejacker
{
LoginR loginR=null;
String jsonurl;
public parsejacker(String jsonurl) {
super();
this.jsonurl = jsonurl;
}
public void ParseLogin() throws JsonParseException,JsonMappingException,IOException
{
System.out.println(jsonurl+"this parselogin");
ObjectMapper mapper=new ObjectMapper();
loginR=mapper.readValue(jsonurl,LoginR.class);
System.out.println(loginR.getHomePage());
System.out.println(loginR.getMessage());
System.out.println(loginR.getFullName());
}
}
LoginR.class
public class LoginR
{
private String homePage;
private String message;
private String fullName;
public String getHomePage(){
return homePage;
}
public void setHomePage(String input){
this.homePage = input;
}
public String getMessage(){
return message;
}
public void setMessage(String input){
this.message = input;
}
public String getFullName(){
return fullName;
}
public void setFullName(String input){
this.fullName = input;
}
}
私は、これらのエラーを取得しています。
(私はエラーがPostcreatedMessage
文字列であると思い "home_page":"/desk"
を克服するためにどのように - 。?>この文字を区切るか、無視する、すなわち、このバックスラッシュ・エラー)
Exception in thread "main" org.codehaus.jackson.map.exc.UnrecognizedPropertyException:
Unrecognized field "home_page" (Class org.greenshoaib.greenshaikh.login.model.LoginR), not marked as ignorable
at [Source: [email protected]; line: 1, column: 15]
(through reference chain: org.greenshoaib.greenshaikh.login.model.LoginR["home_page"])
at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53)
at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:267)
at org.codehaus.jackson.map.deser.std.StdDeserializer.reportUnknownProperty(StdDeserializer.java:673)
at org.codehaus.jackson.map.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:659)
at org.codehaus.jackson.map.deser.BeanDeserializer.handleUnknownProperty(BeanDeserializer.java:1365)
at org.codehaus.jackson.map.deser.BeanDeserializer._handleUnknown(BeanDeserializer.java:725)
at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:703)
at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1863)
at org.greenshoaib.greenshaikh.rest.client.RestAPIClient.main(RestAPIClient.java:72 )
:
はここで、最小限の例ですスタイル、例えばあなたの変数の命名。 'PostcreatedMessage'はクラス名のように見えますが、おそらく変数名です。そのためJavaコード規約では大文字で始まるクラス名だけをラクダ文字で書くべきだと述べています。 – Thomas