JSON整形

提供: MeryWiki
ナビゲーションに移動 検索に移動

概要[編集]

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

機能[編集]

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

履歴[編集]

  • 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;
}
})();
スポンサーリンク