Я пытаюсь использовать jcouchdb (https://code.google.com/p/jcouchdb/) для доступа к моему экземпляру CouchDB из Java. У меня есть несколько документов JSon, которые я хотел бы проанализировать в классах Java - с помощью Svenson, использованных в jcouchdb, а затем поместить эти проанализированныеобъекты в БД. Я генерирую эти объекты JSON с помощью AVRO (http://avro.apache.org) JSon Encoder, они вроде бы в порядке, но, видимо, другие парсеры имеют проблемы с ними.
Мои строки JSon выглядят так:
{
"id":40,
"event_id":"48764322212",
"note":{
"string":"ABC note"
},
"created_date":null,
"event_category":null,
"city":null,
"address":null
}
Что кажется действительным JSON - проверено с помощью http://jsonformatter.curiousconcept.com/
Однако мой объект Свенсона определен так:
public class Note {
Long id;
String eventId;
String note;
String createdDate;
String eventCategory;
String city;
String address;
@JSONProperty()
public Long getId() {
@JSONProperty("event_id")
public String getEventId() {
@JSONProperty("note")
public String getNote() {
@JSONProperty("created_date")
public String getCreatedDate() {
@JSONProperty("event_category")
public String getEventCategory() {
@JSONProperty("city")
public String getCity() {
@JSONProperty("address")
public String getAddress() {
}
(тела установщиков и получателей преднамеренно удалены)
Ошибка при разборе:
Cannot set property string on class java.lang.String
Кажется, что этот JSON анализируется правильно (есть разница в note поле):
{
"id":40,
"event_case_id":"000-123123123",
"event_msisdn":"48764322212",
"note":"Planowana data portacji: 2011/01/27 11:42:49",
"created_date":null,
"event_category":null,
"city":null,
"address":null
}
Как я могу решить это? Может быть, есть другая библиотека json, которая подойдет мне?