JSON コンテンツ モデル

JSON コンテンツ モデルは、JSON 形式のコンテンツのサポートを提供するために使用されます。このモデルでは、どの値にアクセスするかを呼び出し元が認識していることを前提として、呼び出し元が値を抽出できるようにする基本的な API が提供されます。

API

表 1. API
戻り値 メソッド 説明
文字列 getJSONAsString() JSON コンテンツを文字列として返します。
Object getObjectAt(<List of cbjecta> path, JSONArtifact artifact) throws Exception 指定されたパスのオブジェクトを返します。指定されたルート成果物がヌルである可能性があり、その場合はコンテンツのルートが使用されます。返される値は、リテラル文字列、整数、実数、またはブール値であるか、あるいは JSON 成果物 (JSON オブジェクトまたは JSON 配列のいずれか) である可能性もあります。
ハッシュ テーブル (key:object, value:object) getChildValuesAt(<List of object> path, JSONArtifact artifact) throws Exception パスが JSON オブジェクトを指す場合は、指定されたパスの子値を返します。それ以外の場合はヌルを返します。テーブル内のキーは文字列ですが、関連付けられている値は、リテラル文字列、整数、実数、またはブール値であるか、あるいは JSON 成果物 (JSON オブジェクトまたは JSON 配列のいずれか) である可能性もあります。
オブジェクトのリスト getChildrenAt(<List of object> path path, JSONArtifact artifact) throws Exception パスが JSON 配列を指す場合は、指定されたパスのオブジェクトのリストを返します。それ以外の場合はヌルを返します。返される値は、リテラル文字列、整数、実数、またはブール値であるか、あるいは JSON 成果物 (JSON オブジェクトまたは JSON 配列のいずれか) である可能性もあります。
void reset() このコンテンツ モデルに関連付けられた内部ストレージをすべて消去します (キャッシュされた DOM オブジェクトなど)。

スクリプトの例

JSON 形式に基づいて出力を作成する出力ビルダーノードがある場合は、以下のコードを使用して、ブックのセットに関する情報にアクセスすることができます。

results = []
outputbuilder.run(results)
output = results[0]
cm = output.getContentModel("jsonContent")

bookTitle = cm.getObjectAt(["books", "ISIN123456", "title"], None)

# Alternatively, get the book object and use it as the root
# for subsequent entries
book = cm.getObjectAt(["books", "ISIN123456"], None)
bookTitle = cm.getObjectAt(["title"], book)

# Get all child values for aspecific book
bookInfo = cm.getChildValuesAt(["books", "ISIN123456"], None)

# Get the third book entry. Assumes the top-level "books" value
# contains a JSON array which can be indexed
bookInfo = cm.getObjectAt(["books", 2], None)

# Get a list of all child entries
allBooks = cm.getChildrenAt(["books"], None)