extractJsonObject(T object, JsonElement valueObj, Gson gson, RawStringData raw)
throws GsonException {
if (valueObj.isJsonObject()) {
object.fromGson(valueObj.getAsJsonObject(), gson, raw);
} else if (valueObj.isJsonPrimitive()) {
JsonPrimitive primitive = valueObj.getAsJsonPrimitive();
String s = null;
if (raw == null || !primitive.isString()) {
throw new GsonException("Decoding " + valueObj + " as object " + object.getClass() +
" with no RawStringData given");
}
s = raw.getString(valueObj.getAsString());
GsonUtil.parseJson(object, gson, s, raw);