canonical_id: "validate_json" display_name: "JSON 格式驗證器" category: "logic" version: "v1" wasi_target: "preview1" stability: "floating" runtime_compat: - "cf-workers" - "workerd" - "wazero" constraints: max_size_kb: 2048 max_cold_start_ms: 50 no_network_syscall: true no_filesystem_syscall: true io_model: "stdin_stdout_json" input_schema: type: object required: - json_string properties: json_string: type: string description: "待驗證的 JSON 字串" output_schema: type: object required: - valid properties: valid: type: boolean description: "是否為合法 JSON" error: type: string description: "驗證失敗時的錯誤訊息(valid=false 時存在)" gherkin_tests: - scenario: "合法 JSON 物件通過驗證" given: '{"json_string":"{\"key\":\"value\"}"}' then_contains: '{"valid":true}' - scenario: "合法 JSON 陣列通過驗證" given: '{"json_string":"[1,2,3]"}' then_contains: '{"valid":true}' - scenario: "非法 JSON 字串回傳錯誤" given: '{"json_string":"not-json"}' then_contains: '{"valid":false,"error":' - scenario: "空字串回傳錯誤" given: '{"json_string":""}' then_contains: '{"valid":false,"error":"json_string is required"}' - scenario: "缺少 json_string 欄位回傳錯誤" given: '{}' then_contains: '{"valid":false,"error":"json_string is required"}' tags: - "validation" - "json" - "utility" - "logic" description: "驗證輸入字串是否為合法 JSON 格式。輸入 json_string 欄位,回傳 valid(布林值)與 error(失敗時的錯誤訊息)。" config_example: | my_validate_json: # 節點名稱(可自訂) json_string: '{"key":"value"}' # 待驗證的 JSON 字串(必填)