2016-06-29 2 views

ответ

0

В настоящее время я делаю следующим образом.

public RawJsonDocument put(final String key, final JsonObject googleJsonObject) {  
    return bucket.upsert(RawJsonDocument.create(key, googleJsonObject.toString())); 
} 

public String get(final String key) { 
    RawJsonDocument d = bucket.get(RawJsonDocument.create(key)); 
    if (d != null) { 
     return d.content().toString(); 
    } 
    return null; 
} 

Ссылка: https://forums.couchbase.com/t/how-to-convert-a-java-object-to-jsonobject-type-of-couch-base/4255

0

Существует еще один способ.

public JsonDocument put(final String key, final JsonObject googleJsonObject) { 
    try { 
     JsonDocument document = JsonDocument.create(key, 
       com.couchbase.client.java.document.json.JsonObject.fromJson(googleJsonObject.toString())); 
     return bucket.upsert(document); 
    } catch (Throwable th) { 
     return null; 
    } 
} 

public String get(final String key) { 
    JsonDocument d = bucket.get(JsonDocument.create(key)); 
    if (d != null) { 
     return d.content().toString(); 
    } else { 
     return null; 
    } 
} 

Но медленнее, чем RawJsonDocument.

Benchmark Единицы Режим Cnt Оценка ошибок

MyBenchmark.testJsonDocument thrpt 200 81285,574 ± 1972.377 OPS/s MyBenchmark.testRawJsonDocument thrpt 200 148449,285 ± 3639.312 OPS/s

0

Другой способ public JsonStringDocument put(final String key, final JsonObject googleJsonObject) { try { JsonStringDocument document = JsonStringDocument.create(key, googleJsonObject.toString()); return bucket.upsert(document); } catch (Throwable th) { return null; } }

public String get(final String key) { 
    JsonStringDocument d = bucket.get(JsonStringDocument.create(key)); 
    if (d != null) { 
     return d.content().toString(); 
    } else { 
     return null; 
    } 
} 

Это один из всех трех. Но все же я ищу лучший вариант.