2013-04-10 4 views
0

Я новичок в сериализации и десериализации JSON.Deserialize JSON String с использованием org.codehaus.jackson

У меня есть строки со значением

String json = [{"Area":"LoremIpsum","Quantity":1500,"isSubArea":false}, 
{"Area":"LoremIpsum","Quantity":700,"isSubArea":false}]; 

который я десериализации, я использовал ObjectMapper Джексона десериализовать

ObjectMapper mapper = new ObjectMapper(); 
List<DeserializeJSON> agentsList = mapper.readValue(json,new TypeReference<List<DeserializeJSON>>() {}); 

Мой Deserialize Класс

public class DeserializeJSON { 
String Area; 
Integer Quantity = 0; 
boolean isSubArea = false; 

public String getArea() { 
    return Area; 
} 
public void setArea(String Area) { 
    this.Area = Area; 
} 
public Integer getQuantity() { 
    return Quantity; 
} 
public void setQuantity(Integer Quantity) { 
    this.Quantity = Quantity; 
} 
public boolean isSubArea() { 
    return isSubArea; 
} 
public void setSubArea(boolean isSubArea) { 
    this.isSubArea = isSubArea; 
} 

}

Но я получаю ошибку

Unrecognized field "Area" (Class DeserializeJSON), not marked as ignorable at [Source: [email protected]; line: 1, column: 11] (through reference chain: DeserializeJSON["Area"]) 

ответ

2

По умолчанию Джексона будет использовать аксессор недвижимости в JavaBean naming conventions, а не полей. Для того, чтобы ваш пример работы, вы можете изменить это, добавив

mapper.setVisibilityChecker(mapper.getVisibilityChecker().withFieldVisibility(Visibility.ANY)); 

Посмотри другие методы на VisibilityChecker правильно настроить ваше отображение JSon.

+0

С уважением, Ryanp, Cant, я изменяю класс DeserializeJSON, так что мне не нужно устанавливать visibilityChecker, на самом деле я проверил с различными комбинациями, но не нашел работу. – Sushant

+0

@Sushant - да, вы можете, и я бы порекомендовал вас, потому что имена полей, начинающиеся с заглавной буквы, все-таки свойственны. Посмотрите на настройку отображения, например. аннотацию '@ JsonProperty' на ваших аксессуарах. – ryanp

Смежные вопросы