2013年12月6日金曜日

JavaScript get json depth

中の人です。

Jsonの階層数を取りたかった。いい物がなかったので
書いてみた。
それっぽく動いている気がする・・・。
凄く深い場合はリニアじゃない方法で数字を与えればいいけど
そこまでの階層のものは必要ないのでとりあえずこれで。
function getJsonDepth(j){
    var depth=0;
    var cnt=0;
    var ret=0;
    var target = JSON.stringify(j).replace(/[^\{\}]/g,'').replace(/^\{/,'').replace(/\}$/,'').replace(/\}\{/,'');
    var r
    if(target=='') return 1;
    for(cnt=1;;cnt++){
        r = new RegExp("[^\}]{" + cnt + "}","g");
        ret = target.match(r)
        if(!ret)break;
    }
    return cnt;
}

0 件のコメント:

コメントを投稿