Skip to content
RelaxToolsの中の人 edited this page Mar 6, 2021 · 8 revisions

2.3.34 Parser クラス

Remarks

JSON文字列からオブジェクトをパースするクラスです。
ArrayListやDictionaryからJSONに変換するには各クラスのToStringメソッドで。
このクラスは Staticクラス(Attribute VB_PredeclaredId = True) です。

Dependent


2.3.34.1 ParseJSON(Parser)

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


2.3.34.2 ParseFromListbox(Parser)

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


2.3.34.3 ParseFromListbox(Parser)

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


2.3.34.4 ParseFromListObject(Parser)

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

目次

1 使用方法

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 リファレンス

2.1 標準モジュール

2.1.1 CallbackHelper
2.1.2 Document

2.2 インターフェイス

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 クラス

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

Clone this wiki locally