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
- Наследование
- Атрибуты
- Реализации
Комментарии
Записывает значение в кодировке 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 в |
Свойства
Class |
Возвращает класс среды выполнения данного объекта |
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() |
Очищает и закрывает этот модуль записи и базовый |
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() |
Гарантирует, что все буферизированные данные записываются в базовый |
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) |
Задает строку отступа, повторяемую для каждого уровня отступа в закодированном документе. |
ToArray<T>() |
Записывает значение в кодировке JSON (RFC 4627) в поток по одному токену за раз. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Записывает значение в кодировке JSON (RFC 4627) в поток по одному токену за раз. (Унаследовано от 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) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>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) в поток по одному токену за раз. |