在从 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
我使用 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