title: Encode / decode JSON "string" in kotlinx.serialization
body: <p>Is it possible to encode / decode any valid json objects in string format in a custom serializer.
  For example the code below but not let it serialize as json string but as any valid JSON with unknown structure?</p>
  <pre class="lang-kotlin prettyprint-override"><code>object JsonObjectSerializer : KSerializer&lt;JsonObject&gt; {
  
      override val descriptor = PrimitiveSerialDescriptor(&quot;JsonObject&quot;, PrimitiveKind.STRING)
  
      override fun deserialize(decoder: Decoder): JsonObject =
          JsonObject(decoder.decodeString())
  
      override fun serialize(encoder: Encoder, value: JsonObject): Unit =
          encoder.encodeString(value.encode())
  }
  
  </code></pre>
  <p>Out would be something like..</p>
  <pre class="lang-json prettyprint-override"><code>{
      &quot;some&quot;: &quot;data&quot;,
      &quot;jsonObject&quot;: &quot;{\&quot;this\&quot;: \&quot;should not be a string\&quot;}&quot;
  }
  </code></pre>
  <p>But wanted output would be..</p>
  <pre class="lang-json prettyprint-override"><code>{
      &quot;some&quot;: &quot;data&quot;,
      &quot;jsonObject&quot;: {&quot;this&quot;: &quot;should not be a string&quot;}
  }
  </code></pre>