NotesJsonNavigator 和国际字符
NotesJsonNavigator and international characters
我有 json 数据想在 lotusscript 库中使用。
我使用 NotesJsonNavigator 浏览数据。
如果我将 preferUTF8 设置为 false,NotesJSONElements 中的值是字符串,但它会删除 ö、å、...
等国际字符
如果我将参数 preferUTF8 设置为 true,我的 NotesJSONElements 中的值是字节数组。
如何将这些字节数组转换为字符串,同时考虑国际字符?
示例:
Dim session As New NotesSession
'URL Parameters have to be UTF-8 encoded.
Dim url As string
URL = "https://maps.googleapis.com/maps/api/geocode/json?address=Malm%C3%B6%2C%20Sweden&key=<My Google API Key>"
'Creating the request
Dim webRequest As NotesHTTPRequest
Dim response As Variant
Set webRequest = session.createhttprequest()
'Get response as byte array
webrequest.preferstrings = False
response = webrequest.Get(URL)
'Throw error if response status is not OK
If InStr(webRequest.Responsecode, "200 OK") = 0 Then
'Return Status is not OK
Error 1000, "Request returned response code " + webRequest.responseCode
End If
'Create the JSON NAVIGATOR
Dim jsnav As NotesJSONNavigator
If Not IsArray(response) Then Error 1000, "JSON is nothing"
Set jsnav = session.CreateJSONNavigator(response)
'Get data as Strings
jsnav.Preferutf8 = False
'Declaring json specific elements
Dim el_address As NotesJSONElement
Dim el_state As NotesJSONElement
'Retrieving the address...
Set el_address = jsnav.getelementbypointer("/results/0/formatted_address")
Print el_address.value
'Retrieving state
Set el_state = jsnav.getelementbypointer("/results/0/address_components/1/long_name")
Print el_state.value
这会打印
瑞典马尔姆
斯肯
这将在下一个 10.0.1 FP 中修复。请留意修复列表中的 DCONB8F6JV。
我有 json 数据想在 lotusscript 库中使用。 我使用 NotesJsonNavigator 浏览数据。 如果我将 preferUTF8 设置为 false,NotesJSONElements 中的值是字符串,但它会删除 ö、å、...
等国际字符如果我将参数 preferUTF8 设置为 true,我的 NotesJSONElements 中的值是字节数组。 如何将这些字节数组转换为字符串,同时考虑国际字符?
示例:
Dim session As New NotesSession
'URL Parameters have to be UTF-8 encoded.
Dim url As string
URL = "https://maps.googleapis.com/maps/api/geocode/json?address=Malm%C3%B6%2C%20Sweden&key=<My Google API Key>"
'Creating the request
Dim webRequest As NotesHTTPRequest
Dim response As Variant
Set webRequest = session.createhttprequest()
'Get response as byte array
webrequest.preferstrings = False
response = webrequest.Get(URL)
'Throw error if response status is not OK
If InStr(webRequest.Responsecode, "200 OK") = 0 Then
'Return Status is not OK
Error 1000, "Request returned response code " + webRequest.responseCode
End If
'Create the JSON NAVIGATOR
Dim jsnav As NotesJSONNavigator
If Not IsArray(response) Then Error 1000, "JSON is nothing"
Set jsnav = session.CreateJSONNavigator(response)
'Get data as Strings
jsnav.Preferutf8 = False
'Declaring json specific elements
Dim el_address As NotesJSONElement
Dim el_state As NotesJSONElement
'Retrieving the address...
Set el_address = jsnav.getelementbypointer("/results/0/formatted_address")
Print el_address.value
'Retrieving state
Set el_state = jsnav.getelementbypointer("/results/0/address_components/1/long_name")
Print el_state.value
这会打印
瑞典马尔姆
斯肯
这将在下一个 10.0.1 FP 中修复。请留意修复列表中的 DCONB8F6JV。