JsonWriter クラス

定義

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

[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) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。 ストリームには、リテラル値 (文字列、数値、ブール値、null) と、オブジェクトと配列の開始区切り記号と終了区切り記号の両方が含まれます。

<h3>エンコード JSON</h3> データを JSON としてエンコードするには、新 JsonWriterしい を作成します。 各 JSON ドキュメントには、最上位レベルの配列またはオブジェクトが 1 つ含まれている必要があります。 必要に応じて配列とオブジェクトを入れ子にして、構造体の内容を読み込む際にライターでメソッドを呼び出します。ul>li 厳密な配列<または strong>> を書き込む<には、最初に を呼び出します#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 を使用して、1 つの JSON ストリームを書き込む場合があります。 このクラスのインスタンスはスレッド セーフではありません。 形式が正しくない JSON 文字列になる呼び出しは、 IllegalStateExceptionで失敗します。

の Java ドキュメント android.util.JsonWriter

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

JsonWriter(Writer)

JSON でエンコードされたストリームを に書き込む新しいインスタンスを out作成します。

プロパティ

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
JniPeerMembers

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

Lenient

このライターに緩やかな構文規則がある場合は true を返します。 または、 構文規則を緩和するようにこのライターを構成します。

PeerReference

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

(継承元 Object)
ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

(継承元 Object)

メソッド

BeginArray()

新しい配列のエンコードを開始します。

BeginArrayAsync()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

BeginObject()

新しいオブジェクトのエンコードを開始します。

BeginObjectAsync()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Close()

このライターと基になる Writerをフラッシュして閉じます。

Dispose()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
Dispose(Boolean)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
EndArray()

現在の配列のエンコードを終了します。

EndArrayAsync()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

EndObject()

現在のオブジェクトのエンコードを終了します。

EndObjectAsync()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
Flush()

バッファー内のすべてのデータが基になる Writer に書き込まれ、そのライターをフラッシュします。

FlushAsync()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
JavaFinalize()

ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Name(String)

プロパティ名をエンコードします。

NameAsync(String)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。

(継承元 Object)
NullValue()

をエンコードします null

NullValueAsync()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetIndent(String)

エンコードされたドキュメント内のインデントのレベルごとに繰り返されるインデント文字列を設定します。

ToArray<T>()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
Value(Boolean)

をエンコードします value

Value(Double)

をエンコードします value

Value(Int64)

をエンコードします value

Value(Number)

をエンコードします value

Value(String)

をエンコードします value

ValueAsync(Boolean)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

ValueAsync(Double)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

ValueAsync(Int64)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

ValueAsync(Number)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

ValueAsync(String)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

Wait()

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
IJavaPeerable.Finalized()

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

GetJniTypeName(IJavaPeerable)

JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。

適用対象