#json #vb.net
#json #vb.net
Вопрос:
У меня есть ответ json, который выглядит следующим образом
{"RandomUsername1":
{"Name":"Aaron Baker","Team":"Mavericks","Town":"Chester","Scores":{"lowest":1,"highest":10,"average":5}},
"RandomUsername2":
{"Name":"Dan Williams","Team":"Lions","Town":"Doncaster","Scores":{"lowest":0,"highest":8,"average":4}},
"RandomUsername3":
{"Name":"Oliver Smith","Team":"Hudsons","Town":"Oxford","Scores":{"lowest":4,"highest":14,"average":9}}
}
Я использовал этот код, когда был 1 ключ, но когда есть несколько ключей, например «RandomUsername1», «RandomUsername2», «RandomUsername3», я застрял и не уверен, как изменить код, который будет отображаться в listview, где перечислены все пользователи.
Imports Newtonsoft.Json
Imports app_functions
Imports System.Net
Public Class UserInfo
Private Const UserUrl As String = "https://www.anysitename/userinfo"
Public Shared Function GetUser() As UserInfo
If Not app_funcs.CanWeCallAPI Then
Return Nothing
End If
Dim www As New WebClient()
Dim res As Byte() = www.UploadValues(UserUrl, AuthHeader)
Dim strRes As String = System.Text.Encoding.UTF8.GetString(res)
Dim err As String = app_funcs.DetectError(strRes)
If Not String.IsNullOrEmpty(err) Then
Return Nothing
End If
Return Deserialize(strRes)
End Function
Public Shared Function Deserialize(json As [String]) As UserInfo
Return JsonConvert.DeserializeObject(Of UserInfo)(json)
End Function
End Class
Если бы кто-нибудь мог дать мне несколько указаний, я был бы очень признателен.
Спасибо,
Энди
Комментарии:
1. Форматирование этого JSON не очень хорошее — в итоге вы получаете три разных типа объектов с именем каждого из них
RandomUserX
. Вы можете это контролировать?2. Я вообще не могу это контролировать, обратно может быть передано еще больше, в настоящее время это 3 randomuser, но может быть до 10 разных имен пользователей
3. На данный момент у вас нет никакого хорошего решения. Вы могли бы создать переходный объект, содержащий 10 имен свойств RandomUsernameX, а затем преобразовать его в список в свой «хороший» объект. Другим вариантом является использование библиотеки .net, которая позволяет вам самостоятельно анализировать json вместо автоматической десириализации или которая позволяет вам выполнять более сложную десириализацию.