JSON データを解析するために使用される LotusScript クラスです。
包含元: NotesSession
名前で NotesJSONElement を取得します。
GetElementByPointer メソッド
要素を識別するために JSON Pointer 構文を使用して NotesJSONElement を取得します。
GetFirstElement メソッド
JSON文字列の最初の要素を取得します。
GetNextElement メソッド
JSON 文字列の次の要素を取得します。
GetNthElement メソッド
JSON 文字列から指定されたインデックスの要素を取得します。
Stringify メソッド
NotesJSONNavigator に含まれる JSON データの文字列表現を作成します。
AppendElement メソッド
NotesJSONElement を NotesJSONNavigator に追加します。
AppendArray メソッド
NotesJSONArray を NotesJSONavigator に追加します。
AppendObject メソッド
NotesJSONNavigator に NotesJSONObject を追加します。
新しい NotesJSONNavigator オブジェクトを作成するには、createNotesJSONNavigator を使用します。
利用可能なオプションは、入力なし、文字列、または NotesStreamです。
入力なし:
Dim session As New NotesSession
Dim jsonNav As NotesJSONNavigator
Set jsonNav = session.Createjsonnavigator("")
Dim session As New NotesSession
Dim jsonNav As NotesJSONNavigator
set jsonNav = session.CreateJSONNavigator("")
Dim session As New NotesSession
Dim jsonNav As NotesJSONNavigator
set jsonNav = session.CreateJSONNavigator(NotesStream)
Dim jsnav As NotesJSONNavigator
Set jsnav = session.CreateJSONNavigator(|{"test":"A string"}|)
Dim jsnav as NotesJSONNavigator
Set jsnav = session.CreateJSONNavigator("[]")
以下のコードは、NotesJSONNavigator クラスを使用して JSON オブジェクトを作成し操作する方法と、JSON オブジェクト内をナビゲートして特定の要素を取得する方法の例になります。
例-1:
Option Public
Option Declare
Sub Initialize
End Sub
%REM
Sub SampleAppend
Description: creates this JSON object:
{
"variable1" : "value1",
"variable2" : "value2",
"numericVariable", 123
}
%END REM
Sub SampleAppendElement()
Dim session As New NotesSession
Dim jsonNav As NotesJSONNavigator
'# create empty navigator object
Set jsonNav = session.Createjsonnavigator("")
'# append name/value pairs
Call jsonNav.appendElement("value1", "variable1")
Call jsonNav.appendElement("value2", "variable2" )
Call jsonNav.appendElement(123, "numericVariable" )
'# return entire object as string
Print jsonNav.Stringify(), 0, "JSON Object"
End Sub
例-2:
%REM
Sub SampleAppendObject
Description: creates this JSON object:
{
"variable1" : "value1",
"variable2" : "value2",
"myarray" : ["An","array","of","strings"],
"myobject" : {
"property1" : "yourValue1"
}
}
%END REM
Sub SampleAppendObject()
Dim session As New NotesSession
Dim jsonNav As NotesJSONNavigator
Dim arr As NotesJSONArray
Dim obj As NotesJSONObject
'# create empty navigator object
Set jsonNav = session.Createjsonnavigator("")
'# append name/value pairs
Call jsonNav.appendElement("value1", "variable1")
Call jsonNav.appendElement("value2", "variable2" )
Call jsonNav.appendElement(123, "numericVariable" )
'# append array named 'myarray' with string elements
Set arr = jsonNav.appendArray("myarray")
Call arr.appendElement("An")
Call arr.appendElement("array")
Call arr.appendElement("of")
Call arr.appendElement("strings")
'# append object named 'myobject' containing a property and a value
Set obj = jsonNav.appendObject("myobject")
Call obj.appendElement("yourValue1", "property1")
'# return entire object as string
MsgBox jsonNav.Stringify(), 0, "JSON Object"
End Sub
例-3:
%REM
Sub SampleAppendArray
Description: creates this JSON object:
{
"variable1" : "value1",
"variable2" : "value2",
"numericVariable", 123
"myarray" : ["An","array","of","strings"]
}
%END REM
Sub SampleAppendArray()
Dim session As New NotesSession
Dim jsonNav As NotesJSONNavigator
Dim arr As NotesJSONArray
'# create empty navigator object
Set jsonNav = session.Createjsonnavigator("")
'# append name/value pairs
Call jsonNav.appendElement("value1", "variable1")
Call jsonNav.appendElement("value2", "variable2" )
Call jsonNav.appendElement(123, "numericVariable" )
'# append array named 'myarray' with string elements
Set arr = jsonNav.appendArray("myarray")
Call arr.appendElement("An")
Call arr.appendElement("array")
Call arr.appendElement("of")
Call arr.appendElement("strings")
'# return entire object as string
MsgBox jsonNav.Stringify(), 0, "JSON Object"
End Sub
例-4:
%REM
Sub SampleJSONNav
Description: navigates within this JSON object
{
"variable1" : "value1",
"variable2" : "value2",
"myarray" : ["An","array","of","strings"],
"myobject" : {
"property1" : "yourValue1"
}
}
%END REM
Sub SampleJSONNav ()
Dim session As New NotesSession
Dim jsonNav As NotesJSONNavigator
Dim el As NotesJSONElement
Const testJSON$ = |
{
"variable1" : "value1",
"variable2" : "value2",
"myarray" : ["An","array","of","strings"],
"myobject" : {
"property1" : "yourValue1"
}
}
|
'# create navigator object based on the test JSON object declared before
Set jsonNav = session.Createjsonnavigator(testJSON$)
'# Search element by name
Set el = jsonNav.GetElementByName ("variable2")
MsgBox el.Value, 0, "Result of GetElementByName" '# should display 'value2'
'# Search/Get elements in JSON object:
Set el = jsonNav.GetNthElement(2)
MsgBox el.Value, 0, "Result of GetNthElement(2)" '# should display 'value2'
Set el = jsonNav.GetElementByPointer("/myobject/property1")
'# will return 'yourValue1'
MsgBox el.Value, 0, "Result of GetElementByPointer" '# should display 'yourValue1'
End Sub
文字列内に NULL が埋め込まれている場合、Unicode 文字列出力を上書きします。
NotesJSONElement を名前によって取得します。
Set el = jsnav.GetElementByName(name)
name
String。取得する要素の名前。
name パラメータに一致する NotesJSONElement を返します。
JSONElement が見つからない場合は、次のエラーが発生します。
4843 - JSON Element not found
Dim jsnav As NotesJSONNavigator
Set jsnav = session.CreateJSONNavigator(|{"test":"A string"}|)
Set el = jsnav.GetElementByName("test")
JSON ポインタ構文を使用して NotesJSONElement を取得します。
Set el = jsnav.GetElementByPointer(pointer)
pointer
String
目的の要素を識別する JSON ポインタの文字列。
JSON ポインタに対応する NotesJSONElement を返します。
Dim jsnav As NotesJSONNavigator Set jsnav = session.CreateJSONNavigator(|{"test":"A string"}|) Set el = jsnav.GetElementByPointer("/test")
JSON 文字列内の最初の要素を取得します。
Set el = jsnav.GetFirstElement()
なし
JSON 文字列の最初の要素に対応する NotesJSONElement を返します。
Dim jsnav As NotesJSONNavigator
Set jsnav = s.CreateJSONNavigator(
|{ "element1" : "A string", "element2" : "Another string" }|)
Set el = jsnav.GetFirstElement()
JSON 文字列内の次の要素を取得します。
Set el = jsnav.GetNextElement ()
なし
JSON 文字列の次の要素に対応する NotesJSONElement を返します。
Dim jsnav As NotesJSONNavigator
Set jsnav = s.CreateJSONNavigator(
|{ "element1" : "A string", "element2" : "Another string" }|)
Set el = jsnav.GetFirstElement()
Set el = jsnav.GetNextElement()
指定されたインデックスで表される JSON 文字列から要素を取得します。
Set el = jsnav.GetNthElement(index)
index
Integer。要素を識別するためのインデックス。
JSON 文字列の指定された番号の要素に対応する NotesJSONElement を返します。
Dim jsnav As NotesJSONNavigator
Set jsnav = s.CreateJSONNavigator(
|{ "element1" : "A string", "element2" : "Another string", "element3 ": "Third string" }|)
Set el = jsnav.GetNthElement(2)
NotesJSONNavigator に含まれる JSON データの文字列表現を作成します。
jsonstring = jsnav.stringify
なし
NotesJSONNavigator が保持している JSON データの文字列表現を返します。
Dim session As New NotesSession()
Dim nav As NotesJSONNavigator
Dim el As NotesJSONElement
Dim resultStr As String
Set nav = session.Createjsonnavigator("")
Set el = nav.appendElement("stringval", "stringproperty")
ResultStr = nav.stringify
NotesJSONElement を NotesJSONNavigator に追加します。
value
Variant。NotesJSONNavigator に追加する値。許可される型は、String、Integer、Long、 Double、Boolean。
name
String。オプション。要素の名前。JSON ナビゲーターのルート型が配列のとき、name は使用されません。NotesJSONNavigator の AppendArray を参照してください。
NotesJSONNavigator に追加された NotesJSONElement を返します。
Dim jsnav As NotesJSONNavigator
Dim el As NotesJSONElement
Set jsnav = session.createJSONNavigator("")
Set el = jsnav.appendElement(3, "newvalue")
Result: { "newvalue", 3 }
NotesJSONArray を NotesJSONavigator に追加します。
name
String。オプション。配列の名前。
NotesJSONNavigator に追加された NotesJSONArray を返します。
Dim jsnav As NotesJSONNavigator
Dim arr As NotesJSONArray
Set arr = jsnav.appendArray()
Call jsnav.appendElement("An")
Call jsnav.appendElement("array")
Call jsnav.appendElement("of")
Call jsnav.appendElement("strings")
Result: ["An","array","of","strings"]
Dim jsnav As NotesJSONNavigator
Set jsnav = session.createJSONNavigator("")
Dim arr As NotesJSONArray
Set arr = jsnav.appendArray("myarray")
Call arr.appendElement("An")
Call arr.appendElement("array")
Call arr.appendElement("of")
Call arr.appendElement("strings")
Result: {"myarray":["An","array","of","strings"]}
NotesJSONObject を NotesJSONNavigator に追加します。
name
String。オブジェクトの名前。
NotesJSONNavigator に追加された NotesJSONObject を返します。
Dim jsnav As NotesJSONNavigator
Set jsnav = session.createJSONNavigator("")
Dim obj As NotesJSONObject
Set obj = jsnav.appendObject("myobject")
' Note arguments are element value, element name
Call obj.appendElement("string value", "prop1")
Call logOutput("appendObjectExample", jsnav)
Result: {"myobject":{"prop1":"string value"}}