Gil*_*zov 4 java json couchbase
如何轻松地将Java对象转换/解析为一个实例com.couchbase.client.java.document.json.JsonObject的JSON对象?
我试着这样做:
import com.couchbase.client.deps.com.fasterxml.jackson.annotation.JsonProperty;
public class MyClass {
@JsonProperty("filed")
private String filed;
public MyClass(String filed) {
    this.filed = filed;
}
public String getFiled() {
    return filed;
}
并使用导入运行此行:
    import com.couchbase.client.deps.com.fasterxml.jackson.databind.ObjectMapper;
    import com.couchbase.client.java.document.json.JsonObject;
    ObjectMapper mapper = new ObjectMapper();
    MyClass test = new MyClass("a");
    JsonObject node = mapper.convertValue(test, JsonObject.class);
我得到:
    java.lang.IllegalArgumentException: Unrecognized field "filed" (class com.couchbase.client.java.document.json.JsonObject), not marked as ignorable (one known property: "names"])
     at [Source: N/A; line: -1, column: -1] (through reference chain: com.couchbase.client.java.document.json.JsonObject["filed"])
at com.couchbase.client.deps.com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2759)
at com.couchbase.client.deps.com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2685)
将JsonObject在Couchbase是指作为一个非常基本的API使用JSON工作,接近Map:你put简单的值,你getString,getInt从它,等等.
请注意,JsonObject中只接受一组有限的类型:null,String,Integer,Long,Double,Boolean,JsonObject或JsonArray.
如果你想存储域对象,现在最好的支持方法是将它们编组为JSON字符串(使用你喜欢的Jackson,GSon等的味道......)并使用它来存储和检索它们RawJsonDocument.
从数据库获取JSON字符串的示例:
RawJsonDocument doc = bucket.get("myKey", RawJsonDocument.class);
String jsonValue = doc.content();
MyClass value = unmarshalToMyClass(jsonValue); //this calls eg. Jackson
编辑:下面的技巧不是那么好(例如转换长片的问题),
 
但这是一个做你想做的事情的技巧:ObjectMapper你可以使用预配置的杰克逊JacksonTransformers.MAPPER!
| 归档时间: | 
 | 
| 查看次数: | 4574 次 | 
| 最近记录: |