在从 JSON 到 VB.NET 的列表中反序列化

Deserialize in a list from JSON to VB.NET

我使用 HTTPrequest 和 receive a response json 中的一组数组。 我想在列表中的 VB.NET 中解析它以访问:

List.index(0).messages.id
List.index(0).messages.previous
List.index(0).messages.last_update
List.index(0).messages.html

感谢您的帮助,希望您理解我的问题

如果您将 json 作为数组获取,为什么不将其反序列化为仅数组?然后你可以使用 .ToList() 方法将数组转换为 List.

你的 classes 应该是这样的:

public class Message
{
    public int id { get; set; }
    public int previous { get; set; }
    public int last_update { get; set; }
    public string html { get; set; }
}

public class RootObject
{
    public string robots { get; set; }
    public List<Message> messages { get; set; }
    public List<int> messageIds { get; set; }
    public string onlineUsers { get; set; }
    public string reverse { get; set; }
    public int lastrefresh { get; set; }
    public string motd { get; set; }
    public int numInChat { get; set; }
    public bool twelveHour { get; set; }
    public string _visitor_conversationsUnread { get; set; }
    public string _visitor_alertsUnread { get; set; }
}

并且您应该能够将完整的 jSon 直接反序列化为 RootObject class。要反序列化,我会建议 Newtonsoft.Json dll(可在 Nuget 获得)

RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(jsonString);

然后您就可以按照您的要求访问属性了。

我在 http://json2csharp.com/ 的帮助下从你的 jSon

生成了 classes