Share via


JsonWriter 類別

定義

將 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
繼承
JsonWriter
屬性
實作

備註

將 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 編碼資料流程寫入至 out

屬性

Class

傳回這個 Object 的執行時間類別。

(繼承來源 Object)
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()

清除並關閉此寫入器和基礎 Writer

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()

確定所有緩衝的資料都會寫入基礎 Writer 並排清該寫入器。

FlushAsync()

將 JSON (RFC 4627) 編碼值寫入資料流程,一次一個權杖。

GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
JavaFinalize()

當垃圾收集判斷物件不再參考物件時,垃圾收集行程會在物件上呼叫。

(繼承來源 Object)
Name(String)

編碼屬性名稱。

NameAsync(String)

將 JSON (RFC 4627) 編碼值寫入資料流程,一次一個權杖。

Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
NullValue()

null編碼 。

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編碼 。

Value(Double)

value編碼 。

Value(Int64)

value編碼 。

Value(Number)

value編碼 。

Value(String)

value編碼 。

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) 編碼值寫入資料流程,一次一個權杖。

適用於