com.mysql.cj.xdevapi

## Interface DbDoc

All Superinterfaces:
  JsonValue, Map<String,JsonValue>

    public interface DbDoc
    extends JsonValue, Map<String,JsonValue>

The object representation of a JSON document.

JSON document examples:

       {}
       or
       {key : value}
       or
       {key : value, key : value, ...}

key is a JSON string.

value is any one of JSON object, array, number, string, true, false, null.

Example of a valid JSON document:

     {
     "field1" : "value 1",
     "field2" : 1.234544E+26,
     "field3" : true,
     "field4" : false,
     "field5" : null,
     "field6" : {
                "inner field 1" : "inner value 1",
                "inner field 2" : 2,
                "inner field 3" : true,
                "inner field 4" : false,
                "inner field 5" : null,
                "inner field 6" : [],
                "inner field 7" : {}
                },
     "field7" : ["arr1", 3, true, false, null, [], {}]
     }

To create `DbDoc` from existing string representation you could use the JsonParser.parseDoc(java.io.StringReader) method:

     DbDoc doc = JsonParser.parseDoc(new StringReader("{\"key1\" : \"value1\"}"));

To construct a JSON document you can use the DbDoc, JsonString, JsonNumber, JsonArray, or JsonLiteral method. To get a JSON string representation use the toString() method. For example, to get the document shown above:

     DbDoc doc = new DbDocImpl().add("field1", new JsonString().setValue("value 1")).add("field2", new JsonNumber().setValue("12345.44E22"))
             .add("field3", JsonLiteral.TRUE).add("field4", JsonLiteral.FALSE).add("field5", JsonLiteral.NULL)
             .add("field6",
                     new DbDocImpl().add("inner field 1", new JsonString().setValue("inner value 1")).add("inner field 2", new JsonNumber().setValue("2"))
                             .add("inner field 3", JsonLiteral.TRUE).add("inner field 4", JsonLiteral.FALSE).add("inner field 5", JsonLiteral.NULL)
                             .add("inner field 6", new JsonArray()).add("inner field 7", new DbDocImpl()))
             .add("field7", new JsonArray().addValue(new JsonString().setValue("arr1")).addValue(new JsonNumber().setValue("3")).addValue(JsonLiteral.TRUE)
                     .addValue(JsonLiteral.FALSE).addValue(JsonLiteral.NULL).addValue(new JsonArray()).addValue(new DbDocImpl()));

     doc.toString();

### Nested Class Summary

### Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K,V>`

### Method Summary

All Methods Instance Methods Abstract Methods
`DbDoc` `add(String key, JsonValue val)` Add `JsonValue` to the top-level document hierarchy.

### Methods inherited from interface com.mysql.cj.xdevapi.JsonValue

`toFormattedString`

### Methods inherited from interface java.util.Map

`clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

### Method Detail

#### add

    DbDoc add(String key,
              JsonValue val)

Add `JsonValue` to the top-level document hierarchy.

Parameters:
  `key` - field key
  `val` - field value
Returns:
  `DbDoc`

Copyright © 2016, 2022, Oracle and/or its affiliates.