JSON整形

2025年6月30日 (月) 00:39時点におけるMSY-07 (トーク | 投稿記録)による版 (SyntaxHighlightにcopyの追加)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

概要 編集

クリップボードにあるテキスト、または選択しているテキストをJSONとして整形します。

機能 編集

  • JavaScriptのJSON.stringifyを利用した簡易JSON整形を行います。
  • クリップボードに保存されているテキストをJSON整形し、カーソル位置に貼り付けます。
  • クリップボードに保存されていないか、JSONでない場合、選択されているテキストをJSON整形し、選択されているテキストを整形テキストで置き換えます。
  • 上記以外の場合、全選択したうえでJSON整形を行います(全選択したテキストがJSONでない場合は何もしません)。

変更履歴 編集

  • 1.0.0 (2019-03-25)
    • 初版

ソースコード 編集

(function(){
var clipData = ClipboardData.GetData();

//クリップボードにJSONが保存されている
if(clipData != ""){
	var json = parseText(clipData);
	
	if(json != ""){
		shapeText(json);
		window.status = "JSON整形を完了しました。";
		return;
	}else{
		window.status = "JSONのパースに失敗しました。";
		return;
	}
}

//選択されていない場合は全テキストを選択する
if (!document.selection.Text) {
  document.selection.EndOfLine(false);
  document.selection.StartOfLine(true);
}

if (document.selection.Text) {
	var jsonBefore = parseText(document.selection.Text);
	if(jsonBefore == ""){
		//JSONパースエラー時はステータスバーにその旨表示
		window.status = "JSONのパースに失敗しました。";
		return;
	}
	shapeText(jsonBefore)
	window.status = "JSON整形を完了しました。";
}

function parseText(	text ){
	
	var ret = "";
	
	try{
		var ret = JSON.parse(text);
	}catch(error){
		//何もしない
	}

	return ret;
}

function shapeText( text ){
	var json = JSON.stringify(text, null, 4);
	document.selection.Text = json;
}
})();
スポンサーリンク