JsonWriter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將 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 若要寫入 < 強 > 陣列 < /強 > 式,請先呼叫 #beginArray()
。 ><< 使用適當的 #value
方法或巢狀其他陣列和物件,撰寫每個陣列的元素。 最後,使用 #endArray()
關閉陣列。 <li > 若要寫入 < 強 > 物件/強 > 式 < ,請先呼叫 #beginObject()
。 藉由將 呼叫交替為 #name
屬性的值,以寫入每個物件的屬性。 使用適當的 #value
方法或巢狀處理其他物件或陣列,撰寫屬性值。 最後,使用 #endObject()
關閉 物件。 </ul>
<h3 > 範例 < /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
並出現 。
的 android.util.JsonWriter
JAVA 檔。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
建構函式
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 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 (繼承來源 Object) |
ThresholdType |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 (繼承來源 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 < notified/em > 或 < em > interrupted < /em > 。 >< (繼承來源 Object) |
Wait(Int64) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /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) 編碼值寫入資料流程,一次一個權杖。 |