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

Javaドキュメント。

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

コンストラクター

名前 説明
JsonWriter(Writer)

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

プロパティ

名前 説明
Class

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

(継承元 Object)
Handle

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

(継承元 Object)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniPeerMembers

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

Lenient

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

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 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()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 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>()

この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) でエンコードされた値を、一度に 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>notified</em> または <em>interrupted</em>。

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

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

(継承元 Object)
Wait(Int64)

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

(継承元 Object)

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

名前 説明
IJavaPeerable.Disposed()

このマネージド ピアが破棄されたことを相互運用ランタイムに通知します。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

別のマネージド参照によって保持されない限り、このJavaピアを解放します。

(継承元 Object)
IJavaPeerable.Finalized()

このマネージド ピアが終了したことを相互運用ランタイムに通知します。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

このマネージド ピアとその JNI 参照の間の関係を記述する状態を取得します。

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

このJava ピアの相互運用 ID ハッシュ コードを設定します。

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

このJava ピアのマネージド ピアと JNI ピアの状態を設定します。

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

このマネージド ピアで使用される JNI オブジェクト参照を設定します。

(継承元 Object)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象