JsonWriter Classe

Definição

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

[Android.Runtime.Register("android/util/JsonWriter", DoNotGenerateAcw=true)]
public sealed class JsonWriter : Java.Lang.Object, IDisposable, Java.IO.ICloseable
[<Android.Runtime.Register("android/util/JsonWriter", DoNotGenerateAcw=true)>]
type JsonWriter = class
    inherit Object
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Herança
JsonWriter
Atributos
Implementações

Comentários

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez. O fluxo inclui valores literais (cadeias de caracteres, números, boolianos e nulos), bem como delimitadores de início e término de objetos e matrizes.

<h3>Codificação JSON</h3> Para codificar seus dados como JSON, crie um novo JsonWriter. Cada documento JSON deve conter uma matriz ou objeto de nível superior. Chame métodos no gravador enquanto você percorre o conteúdo da estrutura, aninhando matrizes e objetos conforme necessário: <ul><li>Para escrever <matrizes> fortes</fortes>, primeira chamada#beginArray(). Escreva cada um dos elementos da matriz com os métodos apropriados #value ou aninhando outras matrizes e objetos. Por fim, feche a matriz usando #endArray(). <li>Para escrever <objetos> fortes</fortes>, primeira chamada#beginObject(). Escreva cada uma das propriedades do objeto alternando chamadas #name com o valor da propriedade. Escreva valores de propriedade com o método apropriado #value ou aninhando outros objetos ou matrizes. Por fim, feche o objeto usando #endObject(). </ul>

<h3>Exemplo</h3> Suponha que gostaríamos de codificar um fluxo de mensagens, como o seguinte:

{@code
            [
              {
                "id": 912345678901,
                "text": "How do I write JSON on Android?",
                "geo": null,
                "user": {
                  "name": "android_newb",
                  "followers_count": 41
                 }
              },
              {
                "id": 912345678902,
                "text": "@android_newb just use android.util.JsonWriter!",
                "geo": [50.454722, -104.606667],
                "user": {
                  "name": "jesse",
                  "followers_count": 2
                }
              }
            ]}

Esse código codifica a estrutura acima:

{@code
              public void writeJsonStream(OutputStream out, List<Message> messages) throws IOException {
                JsonWriter writer = new JsonWriter(new OutputStreamWriter(out, "UTF-8"));
                writer.setIndent("  ");
                writeMessagesArray(writer, messages);
                writer.close();
              }

              public void writeMessagesArray(JsonWriter writer, List<Message> messages) throws IOException {
                writer.beginArray();
                for (Message message : messages) {
                  writeMessage(writer, message);
                }
                writer.endArray();
              }

              public void writeMessage(JsonWriter writer, Message message) throws IOException {
                writer.beginObject();
                writer.name("id").value(message.getId());
                writer.name("text").value(message.getText());
                if (message.getGeo() != null) {
                  writer.name("geo");
                  writeDoublesArray(writer, message.getGeo());
                } else {
                  writer.name("geo").nullValue();
                }
                writer.name("user");
                writeUser(writer, message.getUser());
                writer.endObject();
              }

              public void writeUser(JsonWriter writer, User user) throws IOException {
                writer.beginObject();
                writer.name("name").value(user.getName());
                writer.name("followers_count").value(user.getFollowersCount());
                writer.endObject();
              }

              public void writeDoublesArray(JsonWriter writer, List<Double> doubles) throws IOException {
                writer.beginArray();
                for (Double value : doubles) {
                  writer.value(value);
                }
                writer.endArray();
              }}

Cada JsonWriter um pode ser usado para gravar um único fluxo JSON. As instâncias dessa classe não são thread-safe. Chamadas que resultariam em uma cadeia de caracteres JSON malformada falharão com um IllegalStateException.

Java documentação para android.util.JsonWriter.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Construtores

Nome Description
JsonWriter(Writer)

Cria uma nova instância que grava um fluxo codificado em JSON em out.

Propriedades

Nome Description
Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
JniPeerMembers

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

Lenient

Retorna true se este gravador tiver regras de sintaxe relaxadas. -ou- Configure este gravador para relaxar suas regras de sintaxe.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)
ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)

Métodos

Nome Description
BeginArray()

Começa a codificar uma nova matriz.

BeginArrayAsync()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

BeginObject()

Começa a codificar um novo objeto.

BeginObjectAsync()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Close()

Libera e fecha este gravador e o subjacente Writer.

Construct(JniObjectReference, JniObjectReferenceOptions)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
EndArray()

Termina a codificação da matriz atual.

EndArrayAsync()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

EndObject()

Termina a codificação do objeto atual.

EndObjectAsync()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

Equals(Object)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
Flush()

Garante que todos os dados em buffer sejam gravados no gravador subjacente Writer e liberados.

FlushAsync()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Name(String)

Codifica o nome da propriedade.

NameAsync(String)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
NullValue()

Codifica .null

NullValueAsync()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetIndent(String)

Define a cadeia de caracteres de recuo a ser repetida para cada nível de recuo no documento codificado.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
Value(Boolean)

Codifica .value

Value(Double)

Codifica .value

Value(Int64)

Codifica .value

Value(Number)

Codifica .value

Value(String)

Codifica .value

ValueAsync(Boolean)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

ValueAsync(Double)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

ValueAsync(Int64)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

ValueAsync(Number)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

ValueAsync(String)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

(Herdado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

Grava um valor codificado em JSON (RFC 4627) em um fluxo, um token por vez.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a