Table of Contents

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

node JsonNode
key string

Returns

JsonArray

ArrOrEmpty(JsonNode?, string)

public static JsonArray ArrOrEmpty(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

JsonArray

AsBool(JsonNode?)

public static bool? AsBool(this JsonNode? node)

Parameters

node JsonNode

Returns

bool?

AsDouble(JsonNode?)

public static double? AsDouble(this JsonNode? node)

Parameters

node JsonNode

Returns

double?

AsInt(JsonNode?)

public static int? AsInt(this JsonNode? node)

Parameters

node JsonNode

Returns

int?

AsLong(JsonNode?)

public static long? AsLong(this JsonNode? node)

Parameters

node JsonNode

Returns

long?

AsStr(JsonNode?)

値を文字列として読みます。数値・真偽値は文字列化し、オブジェクト・配列・null は null。

public static string? AsStr(this JsonNode? node)

Parameters

node JsonNode

Returns

string

At(JsonNode?, int)

配列の要素を安全に読みます。Python 同様に負のインデックスは末尾からの位置です。

public static JsonNode? At(this JsonNode? node, int index)

Parameters

node JsonNode
index int

Returns

JsonNode

Bool(JsonNode?, string)

public static bool? Bool(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

bool?

BoolOr(JsonNode?, string, bool)

public static bool BoolOr(this JsonNode? node, string key, bool fallback)

Parameters

node JsonNode
key string
fallback bool

Returns

bool

Clone(JsonNode?)

親から切り離した深いコピー(JsonNode は親を 1 つしか持てません)。

public static JsonNode? Clone(this JsonNode? node)

Parameters

node JsonNode

Returns

JsonNode

CloneObj(JsonNode?)

public static JsonObject? CloneObj(this JsonNode? node)

Parameters

node JsonNode

Returns

JsonObject

CursorAt(JsonArray?, int)

位置 index(負数は末尾から)のエントリのカーソル値、無ければ null。

public static string? CursorAt(JsonArray? entries, int index)

Parameters

entries JsonArray
index int

Returns

string

Double(JsonNode?, string)

public static double? Double(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

double?

Dump(JsonNode?)

Python の json.dumps 相当(コンパクト出力)。

public static string Dump(this JsonNode? node)

Parameters

node JsonNode

Returns

string

EntryId(JsonNode?)

エントリの entryId(無ければ空文字)。

public static string EntryId(this JsonNode? entry)

Parameters

entry JsonNode

Returns

string

ErrorMessage(List<JsonObject>, string)

先頭エラーのメッセージ(無ければ fallback)。

public static string ErrorMessage(this List<JsonObject> errors, string fallback)

Parameters

errors List<JsonObject>
fallback string

Returns

string

FatalErrors(JsonNode?, string?)

GraphQL レスポンスを実際に沈めたエラーの一覧、なければ null(Python 版の fatal_errors)。

public static List<JsonObject>? FatalErrors(JsonNode? response, string? required = null)

Parameters

response JsonNode

レスポンス全体。

required string

呼び出し側が data から必要とするキー。拒否応答は data に殻だけを 入れて返ってくることがあるため、このキーが見つからなければエラーとして扱います。 成功時にしか現れないキーを選ぶこと(rest_id のような汎用名は殻にも含まれる)。

Returns

List<JsonObject>

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

obj JsonNode
key string
findOne bool

Returns

List<JsonNode>

FindEntryByType(JsonArray?, string)

type が一致する最初のエントリ(Python 版の find_entry_by_type)。

public static JsonObject? FindEntryByType(JsonArray? entries, string typeFilter)

Parameters

entries JsonArray
typeFilter string

Returns

JsonObject

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

data JsonNode
key string

Returns

JsonNode

Get(JsonNode?, string)

オブジェクトのプロパティを安全に読みます。オブジェクトでなければ null。

public static JsonNode? Get(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

JsonNode

Has(JsonNode?, string)

public static bool Has(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

bool

Int(JsonNode?, string)

public static int? Int(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

int?

IntOr(JsonNode?, string, int)

public static int IntOr(this JsonNode? node, string key, int fallback)

Parameters

node JsonNode
key string
fallback int

Returns

int

IsTruthy(JsonNode?)

Python の真偽判定: null / false / 0 / "" / 空のオブジェクト・配列は偽。

public static bool IsTruthy(this JsonNode? node)

Parameters

node JsonNode

Returns

bool

LastCursor(JsonArray?)

末尾のタイムラインエントリが持つカーソル値、無ければ null。

public static string? LastCursor(JsonArray? entries)

Parameters

entries JsonArray

Returns

string

Long(JsonNode?, string)

public static long? Long(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

long?

Obj(JsonNode?, string)

public static JsonObject? Obj(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

JsonObject

Objects(JsonArray?)

配列の要素を JsonObject として列挙します(それ以外はスキップ)。

public static IEnumerable<JsonObject> Objects(this JsonArray? array)

Parameters

array JsonArray

Returns

IEnumerable<JsonObject>

Str(JsonNode?, string)

public static string? Str(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

string

Strings(JsonNode?)

文字列の配列に変換します(文字列でない要素はスキップ)。

public static List<string> Strings(this JsonNode? array)

Parameters

array JsonNode

Returns

List<string>

Sub(JsonNode?, string)

legacy の隣に X が置くようになったネストしたプロファイルオブジェクトを読みます。 v1.1 のペイロードは location を同じ名前で文字列として持つため、 マッピングでない値は「無い」ものとして扱い、呼び出し側が legacy にフォールバックできるようにします。

public static JsonObject Sub(this JsonNode? node, string key)

Parameters

node JsonNode
key string

Returns

JsonObject

ToJsonArray(IEnumerable<string>)

文字列のシーケンスから JsonArray を作ります。

public static JsonArray ToJsonArray(this IEnumerable<string> values)

Parameters

values IEnumerable<string>

Returns

JsonArray

TryParse(string)

JSON テキストを解析します。JSON でなければ null。

public static JsonNode? TryParse(string text)

Parameters

text string

Returns

JsonNode