-
Notifications
You must be signed in to change notification settings - Fork 5
Parser
Remarks
JSON文字列からオブジェクトをパースするクラスです。
ArrayListやDictionaryからJSONに変換するには各クラスのToStringメソッドで。
このクラスは Staticクラス(Attribute VB_PredeclaredId = True) です。
Dependent
- Message
- StringBuilder
- ArrayList
- Dictionary
- IList
- IDictionary
- INewInstance
- IValueObject
- StringHelper
- Convert
- ICursor
- CharCursor
Syntax
Set ret = Parser.ParseJSON(strJSON, [obj = Nothing])
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
strJSON | 必須 | String | JSON文字列を指定 |
obj | 省略可 | object/Collection | オブジェクト(省略可)省略した場合、Object = Dictionary, Array = ArrayList でパースされます。 JSON文字列がネストされており、復元するオブジェクトを指定したい場合、Collection にインスタンスを設定したものを指定する。 |
Return Value
Name | Data type | Description |
---|---|---|
ret | Object | 変換後のオブジェクト |
Remarks
JSON文字列からDictionary(OrderedDictionary/SortedDictionary) または ArrayList を復元する機能。
ICompatibleProperty(I/F)とINewInstance(I/F)に対応すれば、通常のクラスにも復元可能。
Example
複数指定する場合、Collectionに詰めて指定する
Dim col As Collection
Set col = new Collection
col.Add OrderdDictionary.NewInstance 'ネストの1レベル目に使用されるオブジェクト
col.Add ArrayList.NewInstance 'ネストの2レベル目に使用されるオブジェクト
col.Add New CustomPerson 'ネストの3レベル目に使用されるオブジェクト
Set dic = JSON.ParseJSON(strJSON, col)
単数指定する場合、Collection を用いず直接指定する
Set dic = JSON.ParseJSON(strJSON, New CustomPerson)
See also
Syntax
Set ret = Parser.ParseFromListbox(objList,[obj = Nothing])
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
objList | 必須 | Object | Parseする ListBox or ComboBox を指定 |
obj | 省略可 | Object | レコードに使用するオブジェクトを指定。省略時は Dictionary |
Return Value
Name | Data type | Description |
---|---|---|
ret | Boolean | 新しいインスタンス(ArrayList) |
Remarks
ListBox/ComboBox パース
ListBox/ComboBoxからArrayList(レコードはDictionary)を生成する。
Tagにレコードを生成するためのフィールド名リスト(カンマ区切り)が必須。
レコードに使用するオブジェクトは INewInstance と ICompatibleProperty を Implements したクラスであること。
Example
'これはコードではなくプロパティウィンドウで設定しても良い
lstFavorite.Tag = "No,Name,Address"
Dim lst As IList
Set lst = Parser.ParseFromListbox(lstFavorite, New FavoriteBean)
See also
Syntax
Set ret = Parser.ParseFromListview(objList,[obj = Nothing])
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
objList | 必須 | Object | Parseする ListBox or ComboBox を指定 |
obj | 省略可 | Object | レコードに使用するオブジェクトを指定。省略時は Dictionary |
Return Value
Name | Data type | Description |
---|---|---|
ret | Boolean | 新しいインスタンス(ArrayList) |
Remarks
ListView/ComboBox パース
ListView/ComboBoxからArrayList(レコードはDictionary)を生成する。
Tagにレコードを生成するためのフィールド名リスト(カンマ区切り)が必須。
レコードに使用するオブジェクトは INewInstance と ICompatibleProperty を Implements したクラスであること。
Example
'これはコードではなくプロパティウィンドウで設定しても良い
lstFavorite.Tag = "No,Name,Address"
Dim lst As IList
Set lst = Parser.ParseFromListview(lstFavorite, New FavoriteBean)
See also
Syntax
Set ret = Parser.ParseFromListObject(objList,[obj = Nothing])
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
objList | 必須 | Listobject | Parseする Listobject を指定 |
obj | 省略可 | Object | レコードに使用するオブジェクトを指定。省略時は Dictionary |
Return Value
Name | Data type | Description |
---|---|---|
ret | Boolean | 新しいインスタンス(ArrayList) |
Remarks
ListObject パース
ListobjectからArrayList(レコードはDictionary)を生成する。
ListObject(テーブル)の列ヘッダの情報が必須
レコードに使用するオブジェクトは INewInstance と ICompatibleProperty を Implements したクラスであること。
Example
Sub ArrayList_ParseFromListObject_Sample()
Dim lst As IList
Dim dic As IDictionary
Dim Key As Variant
Set lst = Parser.ParseFromListObject(ActiveSheet.ListObjects(1))
For Each dic In lst
For Each Key In dic.Keys
Debug.Print dic.Item(Key)
Next
Next
Dim a As ArrayList
Set a = lst
a.CopyToListObject ActiveSheet.ListObjects(2)
End Sub
See also
「Hidennotare」は RelaxToolsの中の人がじっくりコトコト煮込んだソースです。
1.1 ICursor 系コマンドの使い方
1.2 StringBuilderの使い方
1.3 Messageクラスの使い方
1.4 Usingクラスの使い方
1.5 CSV Parser の使い方
1.6 ArrayListとDictionaryのシリアライズ化
1.7 ArrayListとDictionaryのデシリアライズ化
1.8 PowerQueryのM言語組み立て
2.1.1 CallbackHelper
2.1.2 Document
2.2.1 IAppInfo
2.2.2 IBookReader
2.2.3 IComparer
2.2.4 ICursor
2.2.5 IDictionary
2.2.6 IFormManager
2.2.7 IGDIPlus
2.2.8 IList
2.2.9 ILogger
2.2.10 IMCommand
2.2.11 INewInstance
2.2.12 IParam
2.2.13 IReader
2.2.14 IRegistry
2.2.15 IStringBuilder
2.2.16 IUsing
2.2.17 IUsingArgs
2.2.18 IValueObject
2.2.19 IWriter
2.3.1 ArrayList
2.3.2 Arrays
2.3.3 BookReader
2.3.4 CsvReader
2.3.5 CharCursor
2.3.6 CheckDigit
2.3.7 Clipboard
2.3.8 CsvWriter
2.3.9 Dialog
2.3.10 Dictionary
2.3.11 ExcelUtils
2.3.12 ExplorerComparer
2.3.13 FileIO
2.3.14 FormManager
2.3.15 GDIPlus
2.3.16 Graphics
2.3.17 IniFile
2.3.18 LinkedList
2.3.19 Logger
2.3.20 MCommand
2.3.21 MCsv
2.3.22 MFile
2.3.23 MList
2.3.24 MRecord
2.3.25 MTable
2.3.26 MatchBean
2.3.27 Math
2.3.28 NewExcel
2.3.29 NewPowerPoint
2.3.30 NewWord
2.3.31 Objects
2.3.32 OneTimeSpeedBooster
2.3.33 OrderedDictionary
2.3.34 Parser
2.3.35 Process
2.3.36 RangeCursor
2.3.37 RegExp
2.3.38 Registry
2.3.39 SampleVO
2.3.40 SheetCursor
2.3.41 SortedDictionary
2.3.42 Stack
2.3.43 StrSch
2.3.44 StringBuilder
2.3.45 StringEx
2.3.46 StringUtils
2.3.47 SystemInfo
2.3.48 TableCursor
2.3.49 TaskTrayView
2.3.50 TextReader
2.3.51 TextWriter
2.3.52 Using
2.3.53 Web
2.3.54 Zip