2019-12-03
JavaScript覚書 JSONパース
仕事でJSONデータをバリバリ使うことになった。
けど、階層が多いからちゃんとデータ設定できているのか気になって、解析しようとJavaScriptで組むことにした。
(本当はExcelのマクロでセルにペタッと出力させたかったのだが)
<body>
<textarea id="src"></textarea><br>
<button onclick="javascript:return parseData();">解析</button><br>
<pre id="res"></pre>
<script>
var doc = "";
var indent = " ";
// 解析
function parseData() {
var srcObj = document.getElementById("src");
var resObj = document.getElementById("res");
doc = "";
resObj.innerHTML = doc;
var json = JSON.parse(srcObj.value);
convJson(json, "");
resObj.innerHTML = doc;
}
// 解析処理本体
// obj : JSONデータ, caps : 階層表示インデント
function convJson(obj, caps) {
if (typeof(obj) == "object") {
for (var i in obj) {
if (typeof(obj[i]) == "object") {
doc += caps + "[" + i + "]<br>";
convJson(obj[i], caps + indent); // 下の階層を解析
} else {
doc += caps + i + " : " + obj[i] + "<br>";
}
}
} else {
doc += caps + i + " : " + obj[i] + "<br>";
}
}
</script>
</body>