Примечания JsonNavigator и международные персонажи - PullRequest
1 голос
/ 09 мая 2019

У меня есть данные json, которые я хочу использовать в библиотеке lotusscript.Я использую NotesJsonNavigator для навигации по данным.Если я установил предпочитаемое значение falseUTF8 в значение false, значения в NotesJSONElements являются строками, однако при этом пропускаются международные символы, такие как ö, å, ...

Если я установил параметр предпочитаемое значениеUTUTF8 в значение 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

Это печатает

Мальм, Швеция

Skne

1 Ответ

3 голосов
/ 10 мая 2019

Это будет исправлено в следующем 10.0.1 FP. Следите за DCONB8F6JV в списке исправлений.

...