Search in sources :

Example 1 with DynamoDBList

use of com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBList in project aws-sdk-android by aws-amplify.

the class JsonUtils method toEntry.

private static DynamoDBEntry toEntry(JsonElement data) {
    if (data == null || data.isJsonNull()) {
        return DynamoDBNull.NULL;
    }
    if (data.isJsonObject()) {
        final Document doc = new Document();
        for (final Entry<String, JsonElement> entry : data.getAsJsonObject().entrySet()) {
            final String key = entry.getKey();
            final JsonElement element = entry.getValue();
            doc.put(key, toEntry(element));
        }
        return doc;
    }
    if (data.isJsonArray()) {
        final DynamoDBList list = new DynamoDBList();
        final JsonArray array = data.getAsJsonArray();
        for (final Iterator<JsonElement> iterator = array.iterator(); iterator.hasNext(); ) {
            final JsonElement type = iterator.next();
            list.add(toEntry(type));
        }
        return list;
    }
    final JsonPrimitive primitive = data.getAsJsonPrimitive();
    if (primitive.isBoolean()) {
        return new DynamoDBBool(primitive.getAsBoolean());
    }
    if (primitive.isString()) {
        return new Primitive(primitive.getAsString());
    }
    if (primitive.isNumber()) {
        return new Primitive(primitive.getAsNumber());
    }
    throw new JsonParseException("unable to parse json for key " + data.toString());
}
Also used : JsonArray(com.google.gson.JsonArray) Primitive(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Primitive) JsonPrimitive(com.google.gson.JsonPrimitive) JsonPrimitive(com.google.gson.JsonPrimitive) JsonElement(com.google.gson.JsonElement) DynamoDBBool(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBBool) Document(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Document) JsonParseException(com.google.gson.JsonParseException) DynamoDBList(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBList)

Example 2 with DynamoDBList

use of com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBList in project aws-sdk-android by aws-amplify.

the class JsonUtils method writeJson.

private static void writeJson(DynamoDBEntry entry, JsonWriter writer) throws IOException {
    if (entry instanceof Document) {
        writer.beginObject();
        final Document doc = (Document) entry;
        for (final Entry<String, DynamoDBEntry> docEntry : doc.entrySet()) {
            final String key = docEntry.getKey();
            final DynamoDBEntry value = docEntry.getValue();
            writer.name(key);
            writeJson(value, writer);
        }
        writer.endObject();
        return;
    }
    if (entry instanceof Primitive) {
        final Primitive p = (Primitive) entry;
        writePrimitive(p.getType(), writer, p);
        return;
    }
    if (entry instanceof PrimitiveList) {
        final PrimitiveList pl = (PrimitiveList) entry;
        writer.beginArray();
        for (final DynamoDBEntry e : pl.getEntries()) {
            writePrimitive(pl.getType(), writer, e);
        }
        writer.endArray();
        return;
    }
    if (entry instanceof DynamoDBList) {
        final DynamoDBList pl = (DynamoDBList) entry;
        writer.beginArray();
        for (final DynamoDBEntry e : pl.getEntries()) {
            writeJson(e, writer);
        }
        writer.endArray();
        return;
    }
    if (entry instanceof DynamoDBBool) {
        writer.value(((DynamoDBBool) entry).asBoolean());
        return;
    }
    if (entry instanceof DynamoDBNull) {
        writer.nullValue();
        return;
    }
    throw new JsonParseException("unable to convert to json " + entry);
}
Also used : DynamoDBEntry(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBEntry) Primitive(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Primitive) JsonPrimitive(com.google.gson.JsonPrimitive) PrimitiveList(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.PrimitiveList) DynamoDBBool(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBBool) DynamoDBNull(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBNull) Document(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Document) JsonParseException(com.google.gson.JsonParseException) DynamoDBList(com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBList)

Aggregations

Document (com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Document)2 DynamoDBBool (com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBBool)2 DynamoDBList (com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBList)2 Primitive (com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Primitive)2 JsonParseException (com.google.gson.JsonParseException)2 JsonPrimitive (com.google.gson.JsonPrimitive)2 DynamoDBEntry (com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBEntry)1 DynamoDBNull (com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.DynamoDBNull)1 PrimitiveList (com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.PrimitiveList)1 JsonArray (com.google.gson.JsonArray)1 JsonElement (com.google.gson.JsonElement)1