JsonWriter Класс

Определение

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

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

Комментарии

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

<h3>Кодирование JSON</h3> Чтобы закодировать данные в формате JSON, создайте новый JsonWriter. Каждый документ JSON должен содержать один массив или объект верхнего уровня. Вызывайте методы в модуле записи при обходе содержимого структуры, вложении массивов и объектов при необходимости: ul>li Чтобы записать <сильные>массивы</strong>, сначала вызовите #beginArray().><< Запишите каждый из элементов массива с помощью соответствующих #value методов или путем вложения других массивов и объектов. Наконец, закройте массив с помощью #endArray(). <Li>Чтобы записать <сильные>объекты</strong>, сначала вызовите #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. Экземпляры этого класса не являются потокобезопасны. Вызовы, которые приведут к неправильно сформированной строке JSON, завершатся ошибкой IllegalStateExceptionс .

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

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

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

JsonWriter(Writer)

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

Свойства

Class

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

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

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

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

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

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

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

Lenient

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

PeerReference

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

(Унаследовано от 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объект .

Dispose()

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

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

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

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

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

EndArrayAsync()

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

EndObject()

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

EndObjectAsync()

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

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)

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

ToArray<T>()

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

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

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

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

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

(Унаследовано от 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)

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

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

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

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

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

IJavaPeerable.Disposed()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

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