JSONパーサー
生の文字列をJSONに解析します。
JSON文字列(生のJSON、またはMarkdownコードブロックで囲まれたJSON)を、指定したフィールドを抽出して個別の出力として公開することで構造化データに変換します。これにより、JSON解析、LLM/VLM出力処理、構造化データ抽出、設定解析のワークフローで、JSON文字列を利用可能なワークフローデータに変換できます。
このブロックの仕組み
このブロックはJSON文字列を解析し、指定したフィールドを個別の出力として抽出します。このブロックは次のことを行います。
JSON文字列の入力を受け取ります(通常はLLM/VLMブロックまたはワークフロー入力から)
JSONコンテンツを検出して抽出します:
Markdownで囲まれたJSONを処理します:
Markdownコードブロック内に囲まれたJSONを検索します(
json ...)この形式はLLM/VLMの応答で非常によく見られます(例:GPTの応答)
複数のMarkdown JSONブロックが見つかった場合は、最初のブロックのみを解析します
Markdownタグ内からJSONコンテンツを抽出します
生のJSON文字列を処理します:
Markdownブロックが見つからない場合は、文字列全体をJSONとして解析しようとします
標準的なJSON形式の文字列をサポートします
JSONコンテンツを解析します:
PythonのJSONパーサーを使用して、文字列をJSONオブジェクト/辞書に変換します
解析エラーを適切に処理します(解析に失敗した場合は、すべてのフィールドにNoneを返します)
期待されるフィールドを抽出します:
で指定された各フィールドの値を取得します
expected_fieldsparameter期待される各フィールドについて、解析済みJSON内の対応するキーを検索します
フィールド値を返します(フィールドがない場合はNone)
エラー状態を設定します:
error_statusが設定されますTrue期待されるフィールドのうち少なくとも1つを解析済みJSONから取得できない場合error_statusが設定されますFalseすべての期待されるフィールドが見つかった場合(複数のMarkdownブロックが存在しても、最初のもののみが解析されます)エラー状態は常に出力に含まれるため、後続のブロックで解析の成功可否を確認できます
フィールドを出力として公開します:
の各フィールドは
expected_fieldsフィールド名を持つ個別の出力になりますフィールド値は解析済みJSONから抽出され、出力として利用可能になります
欠落しているフィールドはNoneに設定されます
すべての出力は次の形式で参照できます
$steps.block_name.field_name構文
解析済みデータを返します:
出力には以下が含まれます:
error_status(boolean)およびすべての期待されるフィールドフィールドにはJSONから抽出された値が含まれます(欠落している場合はNone)
出力は後続のワークフローステップで使用できます
このブロックは、JSONを返すLLM/VLMの出力の処理、JSON文字列からの構造化設定の抽出、JSONレスポンスのワークフローで利用可能なデータへの解析に特に役立ちます。LLMがMarkdownコードブロック内にJSONを包む一般的なケースにも対応します。
一般的な使用例
LLM/VLM出力処理: 大規模言語モデルおよび視覚言語モデルからのJSON出力を解析します(例:GPTのJSON応答を解析し、LLM出力から構造化データを抽出し、VLMのJSON応答を処理する)。これにより、LLM/VLM出力処理ワークフローが可能になります
構造化データ抽出: ワークフローで使用するためにJSON文字列から構造化データを抽出します(例:設定パラメータを抽出し、JSON応答を解析し、構造化フィールドを抽出する)。これにより、構造化データ抽出ワークフローが可能になります
設定解析: JSON設定文字列をワークフロー・パラメータに変換します(例:モデル設定を解析し、ワークフローパラメータを抽出し、JSON設定を解析する)。これにより、設定解析ワークフローが可能になります
JSONレスポンス処理: APIやモデルからのJSONレスポンスを処理します(例:APIのJSON応答を解析し、JSONからフィールドを抽出し、JSONデータを処理する)。これにより、JSONレスポンス処理ワークフローが可能になります
動的パラメータ抽出: ワークフローのステップで使用するためにJSON文字列から動的パラメータを抽出します(例:JSONからモデルIDを抽出し、動的設定を解析し、パラメータを動的に抽出する)。これにより、動的パラメータワークフローが可能になります
データ形式変換: JSON文字列を構造化されたワークフローデータに変換します(例:JSONをワークフロー入力に変換し、ワークフローで使うためにJSONを解析し、JSONフィールドを抽出する)。これにより、データ形式変換ワークフローが可能になります
他のブロックへの接続
このブロックはJSON文字列を受け取り、解析済みのフィールド出力を生成します:
LLM/VLMブロックの後 JSON出力を構造化データに解析します(例:LLMのJSON出力を解析し、VLMのJSONフィールドを抽出し、モデルのJSON応答を処理する)。これにより、LLM/VLMからパーサーへのワークフローが可能になります
ワークフロー入力の後 JSON入力パラメータを解析します(例:JSON設定入力を解析し、JSONパラメータを抽出し、JSONワークフロー入力を処理する)。これにより、入力からパーサーへのワークフローが可能になります
モデルブロックの前 解析済みフィールドをモデルパラメータとして使用します(例:解析済みのmodel_idをモデルに使い、解析済みの設定をモデル設定に使い、解析済みパラメータをモデルに渡す)。これにより、パーサーからモデルへのワークフローが可能になります
ロジックブロックの前 条件で解析済みフィールドを使用します(例:Continue Ifで解析済み値を使い、解析済みフィールドに基づいてフィルタリングし、解析済みデータを使って判断する)。これにより、パーサーからロジックへのワークフローが可能になります
データ保存ブロックの前 解析済みフィールド値を保存します(例:解析済みJSONフィールドを保存し、解析済み値を記録し、解析済みデータを保存する)。これにより、パーサーからストレージへのワークフローが可能になります
ワークフロー出力において 解析済みフィールドを最終出力として提供します(例:JSON解析出力、構造化データ出力、解析済みフィールド出力)。これにより、パーサーから出力へのワークフローが可能になります
要件
このブロックにはJSON文字列入力(生のJSON、またはMarkdownコードブロックで囲まれたJSON)が必要です。この expected_fields パラメータは、どのJSONフィールドを出力として抽出するかを指定します(フィールド名は有効なJSONキーである必要があります)。The error_status フィールド名は予約済みであり、使用できません expected_fields。このブロックは生のJSON文字列と、Markdownコードブロックで囲まれたJSONの両方をサポートします(json ... )。複数のMarkdownブロックが見つかった場合、最初のものだけが解析されます。解析に失敗した場合、または期待されるフィールドが欠落している場合、フィールドはNoneに設定され、 error_status がTrueに設定されます。期待されるすべてのフィールドは個別の出力となり、後続のワークフローステップで参照できます。
型識別子
ステップで次の識別子を使用してください "type" フィールド: roboflow_core/json_parser@v1 ワークフローにこのブロックをステップとして追加するには。
プロパティ
名前
型
説明
参照
name
str
このステップの一意の識別子を入力してください。
❌
raw_json
str
解析するJSON文字列。生のJSON文字列(例:'{"key": "value"}')またはMarkdownコードブロックで囲まれたJSON(例: json {"key": "value"} )。Markdownで囲まれたJSONはLLM/VLMの応答でよく見られます。複数のMarkdown JSONブロックがある場合、最初のブロックのみが解析されます。文字列はPythonのJSONパーサーを使って解析され、指定されたフィールドが出力として抽出されます。
✅
expected_fields
List[str]
解析済みJSONから抽出するJSONフィールド名の一覧。各フィールドは、後続のワークフローステップで参照できる個別の出力になります(例:$steps.block_name.field_name)。JSON内に存在するフィールドはその値とともに抽出され、存在しないフィールドはNoneに設定されます。'error_status' フィールド名は予約済み(常に出力として含まれます)であり、この一覧では使用できません。フィールド名はJSONキーと完全に一致する必要があります。
❌
この 参照 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します ワークフロー 実行時。参照 バインディング 詳細は。
入力と出力のバインディング
利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が JSONパーサー のバージョン v1 あるか確認してください。
入力と出力のバインディング
入力
raw_json(language_model_output): 解析するJSON文字列。生のJSON文字列(例:'{"key": "value"}')またはMarkdownコードブロックで囲まれたJSON(例:json {"key": "value"})。Markdownで囲まれたJSONはLLM/VLMの応答でよく見られます。複数のMarkdown JSONブロックがある場合、最初のブロックのみが解析されます。文字列はPythonのJSONパーサーを使って解析され、指定されたフィールドが出力として抽出されます。
最終更新
役に立ちましたか?