各行を正しくエスケープしてJSON配列に変換
Windowsのパスや引用符を含む5行を貼り付けると、5つの値を持つ正しい配列になります。C:\data\file.txtは"C:\\data\\file.txt"として出力され、手で直す必要はありません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- alpha A quoted "value" C:\data\file.txt last
- 値の一覧
- alpha, A quoted "value", C:\data\file.txt, , last
- 行数
- 5
Unix、Windows、従来のMacの改行に対応し、値の空白と意図的な空行を保持します。末尾に1つだけある改行は自然な文書の終端として扱われ、余分な空要素にはなりません。
1行に1つの文字列を貼り付けます
各行が1つの値を表す通常のテキストをご用意ください。買い物リスト、機能フラグ、ターミナルからコピーしたファイル名、表計算のラベル、メールで届いた識別子などに利用できます。カンマ、セミコロン、空白では分割しないため、行内の句読点は値の一部として残ります。
先頭や末尾の空白も削除しません。テストデータ、固定幅データ、厳密なラベルでは空白が意味を持つためです。UnixのLF、WindowsのCRLF、従来のMacのCRはいずれも同じ結果になります。
途中の空行は空文字列になります。貼り付けたテキストが改行で終わる場合、その最後の区切りだけを無視し、予期しない空要素を防ぎます。完全に空の入力から値を推測することはなく、少なくとも1文字が必要です。
配列を使う前に境界を確認します
表計算、ターミナル、文書エディターから取得した値では、結果をご確認ください。このツールは意図を推測せず、行の内容を保つためです。目立たない空白でも別の文字列になり、途中の空行は意図どおり空文字列になります。
一方、末尾の改行は文書の終了を示すだけです。生成される要素はすべて文字列です。
活用例
設定用リストを作成する
環境名、機能フラグ、許可値を貼り付け、設定ファイルで使える有効な配列を取得できます。
信頼できるテストデータを作る
ファイル名、ラベル、境界値を、重要な空白や空要素を保った決定的なデータへ変換できます。
よくある質問
空行はどのように扱われますか?
途中の空行は空文字列になります。末尾の改行は無視され、不要な値は追加されません。
各行の空白は削除されますか?
いいえ。 先頭と末尾の空白は値の一部である可能性があるため、そのまま保持されます。
行の中の引用符やバックスラッシュはどうなりますか?
標準の規則でエスケープします。二重引用符の前にはバックスラッシュが付き、バックスラッシュは2つに重ねられ、タブなどの制御文字も正しい表記になります。そのため、引用符を含む行も1つの正しい値になります。
末尾の改行で空の値が増えますか?
いいえ、最後の改行が1つだけなら貼り付けたテキストの終わりとして扱うので、エディタが付ける改行で空の値ができることはありません。途中の空行は空の値になります。
行の中のカンマで値が分かれますか?
いいえ、値を区切るのは改行だけで、行の中のカンマやセミコロン、空白はその値の一部として残ります。カンマを含む住所やラベル、文もそのまま保たれます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/lines-to-json-array \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"alpha\nA quoted \"value\"\nC:\\data\\file.txt"}'const res = await fetch("https://api.kit.forhosting.com/str/lines-to-json-array", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "alpha\nA quoted \"value\"\nC:\\data\\file.txt"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/lines-to-json-array",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "alpha\nA quoted \"value\"\nC:\\data\\file.txt"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/lines-to-json-array", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"alpha\\nA quoted \\"value\\"\\nC:\\\\data\\\\file.txt"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"alpha\nA quoted \"value\"\nC:\\data\\file.txt"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/lines-to-json-array", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "alpha\nA quoted \"value\"\nC:\\data\\file.txt"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.lines_to_json_array",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
貼り付けた一覧を、引用符やバックスラッシュを手作業で直すことなく、有効なJSON配列へ変換できます。各行を文字列として扱い、JSONの規則でエスケープし、コードに使える結果、解析済みの値、行数を返します。
JSONの規則で安全にエスケープします
二重引用符、バックスラッシュ、タブ、その他の制御文字が含まれる場合、この違いが重要です。Unicode文字列はそのまま読みやすく保たれるため、人名、アクセント付き文字、絵文字、各種言語の文字に独自の置換は不要です。外部サービスを使わない決定的な処理なので、同じ入力からは常に同じ出力が得られます。各行は単純に引用符で囲むのではなく、JSON文字列の標準規則でシリアライズされます。引用符にはエスケープが付き、実際のバックスラッシュは二重になり、制御文字は有効なJSONのエスケープシーケンスになります。`result`には、ソースコード、設定、APIリクエスト、テストフィクスチャへ貼り付けられる整形済みJSONが入ります。`values`は同じ配列を構造化データとして返すため、自動処理で再度JSON文字列を解析する必要がありません。`line_count`では件数を簡単に確認できます。
配列を使う前に境界を確認します
空白の除去、空要素の削除、重複排除、並べ替え、数値や真偽値をJSONプリミティブとして解釈する処理が必要な場合は、変換の前後に明示的に行ってください。`42`という行は数値42ではなく文字列`"42"`になり、`true`も真偽値ではなくテキストのままです。この一貫した規則により、意図しない型変更を防げます。自動処理では`line_count`と予定件数を比較して`values`を使い、コピー用途では`result`をそのままご利用ください。
連携の活用例
API送信用データを準備する
レポートからコピーした識別子を、エスケープが壊れないJSON配列としてリクエスト本文に使えます。
技術的な質問
料金はいくらですか?
APIでの実行は1回につき$0.002です。ブラウザー版はローカルで無料実行できます。
数値や真偽値はJSONプリミティブになりますか?
いいえ。すべてJSON文字列になり、`42`、`true`、`null`も引用符付きテキストのままです。
引用符とバックスラッシュはどう処理されますか?
標準のJSONシリアライズにより、タブやその他の制御文字とともに正しくエスケープされます。