Class JsonExtensions
- Namespace
- Twikit
- Assembly
- Twikit.dll
JsonNode を Python の dict のように扱うためのヘルパー。 欠けたキーは例外ではなく null として読みます(X は任意フィールドを平気で省くため)。
public static class JsonExtensions
- Inheritance
-
JsonExtensions
- Inherited Members
Methods
Arr(JsonNode?, string)
public static JsonArray? Arr(this JsonNode? node, string key)
Parameters
Returns
ArrOrEmpty(JsonNode?, string)
public static JsonArray ArrOrEmpty(this JsonNode? node, string key)
Parameters
Returns
AsBool(JsonNode?)
public static bool? AsBool(this JsonNode? node)
Parameters
nodeJsonNode
Returns
- bool?
AsDouble(JsonNode?)
public static double? AsDouble(this JsonNode? node)
Parameters
nodeJsonNode
Returns
AsInt(JsonNode?)
public static int? AsInt(this JsonNode? node)
Parameters
nodeJsonNode
Returns
- int?
AsLong(JsonNode?)
public static long? AsLong(this JsonNode? node)
Parameters
nodeJsonNode
Returns
- long?
AsStr(JsonNode?)
値を文字列として読みます。数値・真偽値は文字列化し、オブジェクト・配列・null は null。
public static string? AsStr(this JsonNode? node)
Parameters
nodeJsonNode
Returns
At(JsonNode?, int)
配列の要素を安全に読みます。Python 同様に負のインデックスは末尾からの位置です。
public static JsonNode? At(this JsonNode? node, int index)
Parameters
Returns
Bool(JsonNode?, string)
public static bool? Bool(this JsonNode? node, string key)
Parameters
Returns
- bool?
BoolOr(JsonNode?, string, bool)
public static bool BoolOr(this JsonNode? node, string key, bool fallback)
Parameters
Returns
Clone(JsonNode?)
親から切り離した深いコピー(JsonNode は親を 1 つしか持てません)。
public static JsonNode? Clone(this JsonNode? node)
Parameters
nodeJsonNode
Returns
CloneObj(JsonNode?)
public static JsonObject? CloneObj(this JsonNode? node)
Parameters
nodeJsonNode
Returns
CursorAt(JsonArray?, int)
位置 index(負数は末尾から)のエントリのカーソル値、無ければ null。
public static string? CursorAt(JsonArray? entries, int index)
Parameters
Returns
Double(JsonNode?, string)
public static double? Double(this JsonNode? node, string key)
Parameters
Returns
Dump(JsonNode?)
Python の json.dumps 相当(コンパクト出力)。
public static string Dump(this JsonNode? node)
Parameters
nodeJsonNode
Returns
EntryId(JsonNode?)
エントリの entryId(無ければ空文字)。
public static string EntryId(this JsonNode? entry)
Parameters
entryJsonNode
Returns
ErrorMessage(List<JsonObject>, string)
先頭エラーのメッセージ(無ければ fallback)。
public static string ErrorMessage(this List<JsonObject> errors, string fallback)
Parameters
errorsList<JsonObject>fallbackstring
Returns
FatalErrors(JsonNode?, string?)
GraphQL レスポンスを実際に沈めたエラーの一覧、なければ null(Python 版の fatal_errors)。
public static List<JsonObject>? FatalErrors(JsonNode? response, string? required = null)
Parameters
responseJsonNodeレスポンス全体。
requiredstring呼び出し側が
dataから必要とするキー。拒否応答はdataに殻だけを 入れて返ってくることがあるため、このキーが見つからなければエラーとして扱います。 成功時にしか現れないキーを選ぶこと(rest_idのような汎用名は殻にも含まれる)。
Returns
FindDict(JsonNode?, string, bool)
ネストした JSON から key を持つ要素を深さ優先で集めます
(Python 版の find_dict)。findOne なら最初の 1 件で打ち切ります。
public static List<JsonNode?> FindDict(this JsonNode? obj, string key, bool findOne = false)
Parameters
Returns
FindEntryByType(JsonArray?, string)
type が一致する最初のエントリ(Python 版の find_entry_by_type)。
public static JsonObject? FindEntryByType(JsonArray? entries, string typeFilter)
Parameters
Returns
FirstDict(JsonNode?, string)
FindDict(JsonNode?, string, bool) が最初に見つけた値、無ければ null(Python 版の first_dict)。
find_dict(...)[0] を直接添字で読んでいたのが "list index out of range" の主因でした。
public static JsonNode? FirstDict(this JsonNode? data, string key)
Parameters
Returns
Get(JsonNode?, string)
オブジェクトのプロパティを安全に読みます。オブジェクトでなければ null。
public static JsonNode? Get(this JsonNode? node, string key)
Parameters
Returns
Has(JsonNode?, string)
public static bool Has(this JsonNode? node, string key)
Parameters
Returns
Int(JsonNode?, string)
public static int? Int(this JsonNode? node, string key)
Parameters
Returns
- int?
IntOr(JsonNode?, string, int)
public static int IntOr(this JsonNode? node, string key, int fallback)
Parameters
Returns
IsTruthy(JsonNode?)
Python の真偽判定: null / false / 0 / "" / 空のオブジェクト・配列は偽。
public static bool IsTruthy(this JsonNode? node)
Parameters
nodeJsonNode
Returns
LastCursor(JsonArray?)
末尾のタイムラインエントリが持つカーソル値、無ければ null。
public static string? LastCursor(JsonArray? entries)
Parameters
entriesJsonArray
Returns
Long(JsonNode?, string)
public static long? Long(this JsonNode? node, string key)
Parameters
Returns
- long?
Obj(JsonNode?, string)
public static JsonObject? Obj(this JsonNode? node, string key)
Parameters
Returns
Objects(JsonArray?)
配列の要素を JsonObject として列挙します(それ以外はスキップ)。
public static IEnumerable<JsonObject> Objects(this JsonArray? array)
Parameters
arrayJsonArray
Returns
Str(JsonNode?, string)
public static string? Str(this JsonNode? node, string key)
Parameters
Returns
Strings(JsonNode?)
文字列の配列に変換します(文字列でない要素はスキップ)。
public static List<string> Strings(this JsonNode? array)
Parameters
arrayJsonNode
Returns
Sub(JsonNode?, string)
legacy の隣に X が置くようになったネストしたプロファイルオブジェクトを読みます。
v1.1 のペイロードは location を同じ名前で文字列として持つため、
マッピングでない値は「無い」ものとして扱い、呼び出し側が legacy にフォールバックできるようにします。
public static JsonObject Sub(this JsonNode? node, string key)
Parameters
Returns
ToJsonArray(IEnumerable<string>)
文字列のシーケンスから JsonArray を作ります。
public static JsonArray ToJsonArray(this IEnumerable<string> values)
Parameters
valuesIEnumerable<string>
Returns
TryParse(string)
JSON テキストを解析します。JSON でなければ null。
public static JsonNode? TryParse(string text)
Parameters
textstring