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
- Наследование
- Атрибуты
- Реализации
Комментарии
Записывает в поток закодированное значение 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) |
Создает новый экземпляр, в который записывается поток |
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| 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() |
Очищает и закрывает этот модуль записи и базовый |
| 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() |
Гарантирует, что все буферные данные записываются в базовые |
| FlushAsync() |
Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз. |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| JavaFinalize() |
Устаревшие.
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Name(String) |
Кодирует имя свойства. |
| NameAsync(String) |
Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз. |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| NullValue() |
Кодирует |
| 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(Double) |
Кодирует |
| Value(Int64) |
Кодирует |
| Value(Number) |
Кодирует |
| Value(String) |
Кодирует |
| 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 типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Записывает в поток закодированное значение JSON (RFC 4627) по одному маркеру за раз. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |