「JSON整形」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
MSY-07 (トーク | 投稿記録)
セクションの修正
MSY-07 (トーク | 投稿記録)
見出しの修正
11行目: 11行目:
* 2019/03/25 初版
* 2019/03/25 初版


== コード ==
== ソースコード ==
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
(function(){
(function(){

2023年7月22日 (土) 18:02時点における版

概要

クリップボードにあるテキスト、または選択しているテキストを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;
}
})();
スポンサーリンク