Condividi tramite


JsonWriter Classe

Definizione

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

[Android.Runtime.Register("android/util/JsonWriter", DoNotGenerateAcw=true)]
public sealed class JsonWriter : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable
[<Android.Runtime.Register("android/util/JsonWriter", DoNotGenerateAcw=true)>]
type JsonWriter = class
    inherit Object
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Ereditarietà
JsonWriter
Attributi
Implementazioni

Commenti

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta. Il flusso include entrambi i valori letterali (stringhe, numeri, booleani e null) e i delimitatori iniziali e finali di oggetti e matrici.

<h3 Codifica JSON</h3>> Per codificare i dati come JSON, creare un nuovo JsonWriteroggetto . Ogni documento JSON deve contenere una matrice o un oggetto di primo livello. Chiamare i metodi nel writer durante la procedura dettagliata del contenuto della struttura, annidamento di matrici e oggetti in base alle esigenze: <ul<>li>Per scrivere <matrici< forti/forti>>, chiamare #beginArray()prima . Scrivere ognuno degli elementi della matrice con i metodi appropriati #value o annidando altre matrici e oggetti. Chiudere infine la matrice usando #endArray(). <li>Per scrivere <oggetti< sicuri/sicuri>>, chiamare #beginObject()prima . Scrivere ognuna delle proprietà dell'oggetto alternando chiamate a #name con il valore della proprietà. Scrivere i valori delle proprietà con il metodo appropriato #value o annidando altri oggetti o matrici. Chiudere infine l'oggetto usando #endObject(). </ul>

<h3 Esempio</h3>> Si supponga di voler codificare un flusso di messaggi, ad esempio quanto segue:

{@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
                }
              }
            ]}

Questo codice codifica la struttura precedente:

{@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();
              }}

Ognuno JsonWriter può essere usato per scrivere un singolo flusso JSON. Le istanze di questa classe non sono thread safe. Le chiamate che generano una stringa JSON non valida avranno esito negativo con un IllegalStateExceptionoggetto .

Documentazione Java per android.util.JsonWriter.

Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .

Costruttori

JsonWriter(Writer)

Crea una nuova istanza che scrive un flusso con codifica JSON in out.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle all'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
JniPeerMembers

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

Lenient

Restituisce true se questo writer ha regole di sintassi rilassate. -o- Configurare questo writer per rilassare le regole di sintassi.

PeerReference

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)
ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)

Metodi

BeginArray()

Avvia la codifica di una nuova matrice.

BeginArrayAsync()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

BeginObject()

Avvia la codifica di un nuovo oggetto.

BeginObjectAsync()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Close()

Scarica e chiude questo writer e il sottostante Writer.

Dispose()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
Dispose(Boolean)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
EndArray()

Termina la codifica della matrice corrente.

EndArrayAsync()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

EndObject()

Termina la codifica dell'oggetto corrente.

EndObjectAsync()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
Flush()

Assicura che tutti i dati memorizzati nel buffer vengano scritti nell'oggetto sottostante Writer e scaricano tale writer.

FlushAsync()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
JavaFinalize()

Chiamato dal Garbage Collector in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto.

(Ereditato da Object)
Name(String)

Codifica il nome della proprietà.

NameAsync(String)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

Notify()

Riattiva un singolo thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
NullValue()

nullCodifica .

NullValueAsync()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetIndent(String)

Imposta la stringa di rientro da ripetere per ogni livello di rientro nel documento codificato.

ToArray<T>()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione in formato stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
Value(Boolean)

valueCodifica .

Value(Double)

valueCodifica .

Value(Int64)

valueCodifica .

Value(Number)

valueCodifica .

Value(String)

valueCodifica .

ValueAsync(Boolean)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

ValueAsync(Double)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

ValueAsync(Int64)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

ValueAsync(Number)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

ValueAsync(String)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

Wait()

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.<

(Ereditato da Object)
Wait(Int64)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
IJavaPeerable.Finalized()

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione dei tipi controllati dal runtime Android.

JavaCast<TResult>(IJavaObject)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

GetJniTypeName(IJavaPeerable)

Scrive un valore JSON (RFC 4627) codificato in un flusso, un token alla volta.

Si applica a