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>エンコード 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 でエンコードされたストリームを に書き込む新しいインスタンスを |
プロパティ
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> または <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 つのトークンでストリームに書き込みます。 |