JSONObject 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一組可修改的名稱/值映射。
[Android.Runtime.Register("org/json/JSONObject", DoNotGenerateAcw=true)]
public class JSONObject : Java.Lang.Object
[<Android.Runtime.Register("org/json/JSONObject", DoNotGenerateAcw=true)>]
type JSONObject = class
inherit Object
- 繼承
- 屬性
備註
一組可修改的名稱/值映射。 名稱是唯一且非空的字串。 值可以是任意組合 JSONObject JSONObjects、、 JSONArray JSONArrays字串、布林、整數、長數、雙數或 #NULL。 數值不得為 null、 、 Double#isNaN() NaNsDouble#isInfinite() infinities,或任何未列於此的類型。
此類別可在請求時強制設定值至其他類型。
<ul><li>當請求的類型是布林時,字串會以不區分大小寫的「true」與「false」來強制比較。
<當>請求的類型為雙重時,其他 Number 類型會被強制使用 Number#doubleValue() doubleValue。 可以被強迫使用的 Double#valueOf(String) 線索會被使用。
<當>請求的類型為整數時,其他 Number 類型會被強制使用 Number#intValue() intValue。 可強制使用的 Double#valueOf(String) 字串會被 ,然後 cast 為 int。 <li>“lossy”> 當請求的類型是 long 時,其他 <c>Number</c> 類型會被強制使用 <c>Number#longValue() longValue</c>。 可以用 c<Double#valueOf(String)>/c< 強制執行>的字串,會被 c,然後 cast 到 long。 此兩步轉換在非常大值時是有損的。 例如,字串「9223372036854775806」即產生長 9223372036854775807。<當>請求的型別是 String 時,其他非空值會被強制使用 String#valueOf(Object)。 雖然 null 無法被強制執行,但哨兵值 JSONObject#NULL 會被強制到 “null” 字串。
</ul>
此類別可查詢強制值與選填值: <ul><li>用來 get<i>Type</i>() 取得強制值。 若請求名稱沒有值或無法強制該值被強制為請求型別,則此方法在 a JSONException 時會失敗。
<li>用 opt<i>Type</i>() 來取得可選值。 若請求名稱沒有值,或無法強制指定為請求型別,則會回傳系統或使用者提供的預設值。
</ul>
<strong>警告:</strong> 這個類別以兩種不相容的方式表示 null:標準 Java null 參考,以及哨兵值JSONObject#NULL。 特別地,呼叫 put(name, null) 會移除物件中的命名條目,但 put(name, JSONObject.NULL) 儲存一個值為 JSONObject.NULL的條目。
此類別的實例並非執行緒安全。 雖然此類別非最終,但並非設計為繼承,不應被子分類。 特別是,未明確規定可覆寫方法的自我使用。 詳情請參閱 Effective Java,第三版第 19 項,「設計與文件繼承或禁止」一文。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| JSONObject() |
建立 |
| JSONObject(IDictionary) |
透過複製給定映射中所有的名稱/值映射來建立新的 |
| JSONObject(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
| JSONObject(JSONObject, String[]) |
透過複製指定物件中列出名稱的映射來建立新 |
| JSONObject(JSONTokener) |
在標記器中建立 |
| JSONObject(String) |
用 JSON 字串建立一個 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| JniPeerMembers |
一組可修改的名稱/值映射。 |
| Null |
哨兵值用來明確定義一個沒有值的名稱。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
| 名稱 | Description |
|---|---|
| Accumulate(String, Object) |
附加 |
| Append(String, Object) |
將值附加到映射到 |
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| Equals(Object) |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| Get(String) |
回傳由 映射的 |
| GetBoolean(String) |
如果值存在且是布林值或可強制轉為布林值,則回傳映射 |
| GetDouble(String) |
如果值存在且為雙重,則回傳映射的 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| GetInt(String) |
如果值存在且是整數或可強制為整數,則回傳映射的 |
| GetJSONArray(String) |
若存在且為 |
| GetJSONObject(String) |
若存在且為 |
| GetLong(String) |
如果值存在且是長數值或可被強迫長數,則回傳 映射 |
| GetString(String) |
如果存在,則回傳映射的 |
| Has(String) |
若此物件對 有映射 |
| IsNull(String) |
若該物件沒有 的 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Keys() |
回傳這個物件中名稱的迭代器 |
| Length() |
回傳這個物件中名稱/值映射的數量。 |
| Names() |
回傳包含此物件中字串名稱的陣列。 |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| NumberToString(Number) |
將數字編碼為 JSON 字串。 |
| Opt(String) |
回傳由 映射的 |
| OptBoolean(String, Boolean) |
如果值存在且是布林值,或可被強制轉為布林值, |
| OptBoolean(String) |
如果值存在且是布林值,則回傳映射至 的 |
| OptDouble(String, Double) |
如果值存在且為雙重,則回傳映射的 |
| OptDouble(String) |
如果值存在且為雙重,則回傳映射的 |
| OptInt(String, Int32) |
如果值存在且是整數,或可強制為整數 |
| OptInt(String) |
如果值存在且為整數,則回傳映射為 的 |
| OptJSONArray(String) |
若值存在且為 |
| OptJSONObject(String) |
若值存在且為 |
| OptLong(String, Int64) |
如果值存在且是長值,或可被強制轉為長值, |
| OptLong(String) |
如果值存在且為長值,則回傳 映射 |
| OptString(String, String) |
如果值存在,則回傳映射 |
| OptString(String) |
如果存在,則回傳映射 |
| Put(String, Boolean) |
映射 |
| Put(String, Double) |
映射 |
| Put(String, Int32) |
映射 |
| Put(String, Int64) |
映射 |
| Put(String, Object) |
映射 |
| PutOpt(String, Object) |
等價 |
| Quote(String) |
編碼 |
| Remove(String) |
若有命名映射,則移除;除此之外什麼都不做。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToJSONArray(JSONArray) |
回傳一個對應於 |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| ToString(Int32) |
將此物件編碼為人類可讀的 JSON 字串以便除錯,例如: |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wrap(Object) |
必要時會包裹給定的物件。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
一組可修改的名稱/值映射。 (繼承來源 JavaObject) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一組可修改的名稱/值映射。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |