Язык

JsonWriter Класс

Определение

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

[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
Наследование
JsonWriter
Атрибуты
Реализации

Комментарии

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз. Поток включает как литеральные значения (строки, числа, логические значения и значения NULL), так и начальные и конечные разделители объектов и массивов.

<H3>Кодирование JSON</h3> Для кодирования данных в формате JSON создайте новый JsonWriterкод. Каждый документ JSON должен содержать один массив или объект верхнего уровня. Вызов методов модуля записи при выполнении обхода содержимого структуры, вложенных массивов и объектов по мере необходимости: <ul><li>Для записи <сильных>массивов или сильных<> вызовов#beginArray(). Напишите каждый из элементов массива соответствующими #value методами или вложенными другими массивами и объектами. Наконец закройте массив с помощью #endArray(). <li>Для записи <сильных>объектов</сильных> вызовов #beginObject(). Напишите все свойства объекта, изменяя вызовы #name со значением свойства. Запись значений свойств с соответствующим #value методом или путем вложения других объектов или массивов. Наконец закройте объект с помощью #endObject(). </ul>

<H3 Example>/h3<> Предположим, что мы хотели бы закодировать поток сообщений, например следующее:

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

Этот код код кодирует указанную выше структуру:

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

Каждый из них JsonWriter можно использовать для записи одного потока JSON. Экземпляры этого класса не являются потокобезопасны. Вызовы, которые привели бы к сбою IllegalStateExceptionнеправильно сформированной строки JSON.

Java документации по android.util.JsonWriter.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя. Описание
JsonWriter(Writer)

Создает новый экземпляр, в который записывается поток outв кодировке JSON.

Свойства

Имя. Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
JniPeerMembers

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

Lenient

Возвращает значение true, если этот модуль записи имеет расслабленные правила синтаксиса. -или- Настройте этот модуль записи для расслабления правил синтаксиса.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)
ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)

Методы

Имя. Описание
BeginArray()

Начинает кодирование нового массива.

BeginArrayAsync()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

BeginObject()

Начинает кодирование нового объекта.

BeginObjectAsync()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Close()

Очищает и закрывает этот модуль записи и базовый Writer.

Construct(JniObjectReference, JniObjectReferenceOptions)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
EndArray()

Заканчивается кодировка текущего массива.

EndArrayAsync()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

EndObject()

Завершает кодировку текущего объекта.

EndObjectAsync()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

Equals(Object)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
Flush()

Гарантирует, что все буферные данные записываются в базовые Writer и сбрасывают этот модуль записи.

FlushAsync()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Name(String)

Кодирует имя свойства.

NameAsync(String)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
NullValue()

Кодирует null.

NullValueAsync()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetIndent(String)

Задает строку отступа, которая будет повторяться для каждого уровня отступа в кодированном документе.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Value(Boolean)

Кодирует value.

Value(Double)

Кодирует value.

Value(Int64)

Кодирует value.

Value(Number)

Кодирует value.

Value(String)

Кодирует value.

ValueAsync(Boolean)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

ValueAsync(Double)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

ValueAsync(Int64)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

ValueAsync(Number)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

ValueAsync(String)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к