Я использую данные опроса через SSE Stream
, что дает мне ответы каждого человека построчно с этим форматом для Survey X
:
{"data":["4482359","12526","5","5","","Yes, that is right","1"]}
Я прочитал это в List(of String)
, используя Streamreader
Dim sr As StreamReader = New StreamReader(stream)
Dim myList As List(Of String) = New List(Of String)
While sr.Peek >= 0
myList.Add(sr.ReadLine())
End While
Теперь я хочу десериализовать строки, чтобы получить записи в свойствах класса (назовем его tmpUserData
), к которому я могу получить доступ. Я пробовал это с помощью Newtonsoft.Json
:
Dim tmpUserData As Object = JsonConvert.DeserializeObject(Of Object)(myList(i))
но, глядя на tmpUserData
, десериализация не разделяет записи как
(1) User1
(1) "4482359"
(2) "12526"
(3) "5"
(4) ""
...
(2) User1
(1) "5847895"
(2) "33568"
(3) "6"
(4) "2"
...
но вместо этого он просто помещает все в одну запись
(1) "4482359","12526","5","5","","Yes, that is right","1"
Причина, по которой я не могу просто написать класс и поместить в него данные, как
JsonConvert.DeserializeObject(myclass)(myList(i))
заключается в том, что это должно быть динамически, поскольку количество и структура строк различаются для разных обследований. Так что Survey Y
может выглядеть так:
{"data":["Peter","Jackson","Albert Street","5","","1"]}
Может ли кто-нибудь помочь мне получить то, что я ищу, чтобы записи каждого участника Survery были правильно десериализованы? C#
Решение также приветствуется.