11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

レガシーASPのJSON入出力用ライブラリ "ASPJSON"のメモ

Last updated at Posted at 2014-12-09

レガシーASPで毎度JSON出力する関数書くのだるい→ライブラリあったやったぜ。
http://www.aspjson.com/

簡単にメモ。随時追記予定。

###パブリックな変数

変数 用途
data Dictionaryオブジェクトで初期化されたPublic変数。JSONデータの格納に使う

###パブリックな関数

メソッド名 種類 引数 返り値 使途
loadJSON Sub JSON文字列(inputsource) なし JSONデシリアライズ
JSONoutput Function なし JSONオブジェクト文字列 JSONシリアライズ
Collection Function なし 初期化されたDictionaryオブジェクト dataに値を追加するときに利用。記述量が減らせるだけ。
AddToCollection Function Dictionaryオブジェクト(dictobj) dictobj.countキーを追加したdictobj(dictobj.count) よくわからない

###仕様

  • 全てのデータはDictionaryオブジェクトで管理される
  • dataをrootとして、Dictionaryオブジェクトを追加していく形で入れ子を表現する
  • Dictionaryオブジェクトのキーに文字列がある場合、そのDictionaryオブジェクトはJavaScriptオブジェクトとして出力
  • Dictionaryオブジェクトのキーが全て整数の場合、そのDictionaryオブジェクトはJavaScript配列として出力
  • 全ての出力されるJSONデータの出力順は、Dictionaryオブジェクトへのデータの挿入順となる。配列出力であってもキーの整数値順とはならない

###疑問
AddToCollectionの使い道。
引数の元オブジェクトも変更されるし謎。

###追記
AddToCollectionについて

####コード

Dim a
Set a = New aspJSON
a.AddToCollection(a.data)
a.data(a.data.count-1) = "hoge"
Response.Write a.JSONoutput()

####出力

[ "hoge" ]

こんな感じで配列のPushみたいなノリで使えばいいのかな。
どうせなら挿入する値も引数にセットできればいいのに感はある。
あとキーの取り方が(ディクショナリー).count-1するしかなさそうなのもうーん。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?