gpt4 book ai didi

java - jcouchdb : svenson unable to parse json string

转载 作者:行者123 更新时间:2023-11-29 06:15:07 25 4
gpt4 key购买 nike

我正在尝试使用 jcouchdb (https://code.google.com/p/jcouchdb/) 从 Java 访问我的 CouchDB 实例。我有一些 JSon 文档,我想将其解析为 Java 类 - 使用 Svenson,在 jcouchdb 中使用,然后将这些解析的对象放入 DB 中。我用 AVRO (http://avro.apache.org) JSON 编码器生成这个 JSON 对象,它们似乎没问题,但显然其他解析器有问题。

我的 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/ 验证

但是我的 Svenson 对象定义如下:

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() {

}

(故意移除 setter 和 getter 的 body )

解析时的错误是:

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 库?

最佳答案

您将注释声明为 java.lang.String:

public String getNote()

但在 JSON 中,您将其声明为具有属性 named "string"的对象:

"note":{
"string":"ABC note"
}

您需要更改 JSON 或 Bean 以相互匹配。例如,在第二个正常运行的 JSON 中,您将 JSON 注释声明为字符串。这就是它起作用的原因。

关于java - jcouchdb : svenson unable to parse json string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5375243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com