Каков наилучший способ преобразования из com.couchbase.client.java.document.json.JsonObject в com.google.gson.JsonObject и наоборот?Couchbase JsonObject для google JsonObject и наоборот?
0
A
ответ
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;
}
}
Это один из всех трех. Но все же я ищу лучший вариант.