<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://www.haijin-boys.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ovis</id>
	<title>MeryWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://www.haijin-boys.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ovis"/>
	<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Ovis"/>
	<updated>2026-08-24T23:59:40Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=JSON%E6%95%B4%E5%BD%A2&amp;diff=3883</id>
		<title>JSON整形</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=JSON%E6%95%B4%E5%BD%A2&amp;diff=3883"/>
		<updated>2019-03-25T11:23:12Z</updated>

		<summary type="html">&lt;p&gt;Ovis: JSON整形マクロの追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 概要 =&lt;br /&gt;
クリップボードにあるテキスト、または選択しているテキストをJSONとして整形します。&lt;br /&gt;
&lt;br /&gt;
= 機能 =&lt;br /&gt;
* JavaScriptのJSON.stringifyを利用した簡易JSON整形を行います。&lt;br /&gt;
* クリップボードに保存されているテキストをJSON整形し、カーソル位置に貼り付けます。&lt;br /&gt;
* クリップボードに保存されていないか、JSONでない場合、選択されているテキストをJSON整形し、選択されているテキストを整形テキストで置き換えます。&lt;br /&gt;
* 上記以外の場合、全選択したうえでJSON整形を行います。(全選択したテキストがJSONでない場合は何もしません)&lt;br /&gt;
= 履歴 =&lt;br /&gt;
* 2019/03/25 初版&lt;br /&gt;
&lt;br /&gt;
= コード =&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
(function(){&lt;br /&gt;
var clipData = ClipboardData.GetData();&lt;br /&gt;
&lt;br /&gt;
//クリップボードにJSONが保存されている&lt;br /&gt;
if(clipData != &amp;quot;&amp;quot;){&lt;br /&gt;
	var json = parseText(clipData);&lt;br /&gt;
	&lt;br /&gt;
	if(json != &amp;quot;&amp;quot;){&lt;br /&gt;
		shapeText(json);&lt;br /&gt;
		window.status = &amp;quot;JSON整形を完了しました。&amp;quot;;&lt;br /&gt;
		return;&lt;br /&gt;
	}else{&lt;br /&gt;
		window.status = &amp;quot;JSONのパースに失敗しました。&amp;quot;;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//選択されていない場合は全テキストを選択する&lt;br /&gt;
if (!document.selection.Text) {&lt;br /&gt;
  document.selection.EndOfLine(false);&lt;br /&gt;
  document.selection.StartOfLine(true);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (document.selection.Text) {&lt;br /&gt;
	var jsonBefore = parseText(document.selection.Text);&lt;br /&gt;
	if(jsonBefore == &amp;quot;&amp;quot;){&lt;br /&gt;
		//JSONパースエラー時はステータスバーにその旨表示&lt;br /&gt;
		window.status = &amp;quot;JSONのパースに失敗しました。&amp;quot;;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	shapeText(jsonBefore)&lt;br /&gt;
	window.status = &amp;quot;JSON整形を完了しました。&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function parseText(	text ){&lt;br /&gt;
	&lt;br /&gt;
	var ret = &amp;quot;&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	try{&lt;br /&gt;
		var ret = JSON.parse(text);&lt;br /&gt;
	}catch(error){&lt;br /&gt;
		//何もしない&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function shapeText( text ){&lt;br /&gt;
	var json = JSON.stringify(text, null, 4);&lt;br /&gt;
	document.selection.Text = json;&lt;br /&gt;
}&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ovis</name></author>
	</entry>
</feed>