JsonWriter クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
- 継承
- 属性
- 実装
注釈
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で失敗します。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| JsonWriter(Writer) |
JSON でエンコードされたストリームを |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| 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() |
このライターと基になる |
| 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() |
バッファー内のすべてのデータが基になる |
| FlushAsync() |
JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。 |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Name(String) |
プロパティ名をエンコードします。 |
| NameAsync(String) |
JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。 |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| NullValue() |
|
| 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(Double) |
|
| Value(Int64) |
|
| Value(Number) |
|
| Value(String) |
|
| 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() |
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) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
JSON (RFC 4627) でエンコードされた値を、一度に 1 つのトークンでストリームに書き込みます。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|