2012-03-14 9 views
1

Personクラスには "last_name"というJSONプロパティがありますが、プロパティは正常にマップされます。 Personクラスを以下に含めました。これが起こっているかもしれない何らかの理由が認められます。 Jacksonコア/マッパー1.8.5が使用されています。Jackson ObjectMapper - "_"のプロパティがマップされていません

ObjectNode node = (ObjectNode) row.getDocAsNode(); 

try { 
     Person person = mapper.readValue(node, Person.class); 

     tt.setText(person.getName()); 

     bt.setText(person.getLastName()); 

    } catch (JsonParseException e) { 

     e.printStackTrace(); 
    } catch (JsonMappingException e) { 

     e.printStackTrace(); 
    } catch (IOException e) { 

     e.printStackTrace(); 
    } 

Personクラス:

@JsonIgnoreProperties(ignoreUnknown = true) 

public class Person { 

private String _name; 
private String _last_name; 

public String getName() { return _name; } 
public String getLastName() { return _last_name; } 

public void setName(String str) { _name = str; } 
public void setLastName(String str) { _last_name = str; } 

} 

答えて

6

Java Beanが仕様では、マッピングが期待されているものを定義します。メソッドgetLastName()を指定すると、正確なプロパティ "lastName"のみがマップされます。 "LAST_NAME" をマップする

、オプションのカップルを持っている:JSONプロパティの名前を変更する方法を取得する@JsonProperty("last_name")

  • 使用はObjectMapper.setNamingStrategy」に登録されPropertyNamingStrategyを(PropertyNamingStrategy. LowerCaseWithUnderscoresStrategyなど)を使用
  • を使用()」を使用してBeanプロパティでJSON名をマッピングする方法を変更する

すべてのデータがJava Beanの命名規則場合)。以前は一回限りの変更に優れていました。

+0

ありがとう、ありがとうございました。 – Alex

+0

あなたは歓迎です - この作品を確認していただきありがとうございます! – StaxMan

関連する問題