【问题标题】:Handing back different objects from the one VB.Net function从一个 VB.Net 函数返回不同的对象
【发布时间】:2014-04-09 02:00:31
【问题描述】:

上下文:Visual Studio 2010、Windows 7

我正在将VBJSON 移植到 VB.Net。如果某个有进取心的人已经这样做了,请告诉我,免去我的痛苦。

无论如何,我想从一个函数返回一个字典或一个列表。通常,我想,一个人会传回一个对象,但这让我很伤心,因为我有一个嵌入在字典中的列表或嵌入在列表中的字典,或者是 JSON 可行的其他可能组合之一。我不能简单地离开

var result = JSON.parse("{'collection':['dog','cat',2,3]}");

Console.WriteLine(result["collection"][1]);

无需将 Object 转换为 List 或 Dictionary 或它们的某种组合。所以我正在四处寻找想法,试图弄清楚如何让解析函数(顺便说一下递归调用)返回通用对象以外的东西。

【问题讨论】:

  • 我认为泛型是你想要的 - 'parse' 会有一个泛型类型参数,它是单个参数的类型。

标签: c# json vb.net


【解决方案1】:

您是否正在寻找该特定库的端口?如果没有,已经有 .NET 的 JSON 库,包括 Json.NET。也可以serialize and deserialize to JSON

Dictionary 和 List 都实现了 IEnumerable<T>ICollection<T>,因此您的 parse 方法可以返回其中一种类型并传回列表或字典。这将比Object 更具体一点。您仍然可以遍历返回值,但您的 Console.WriteLine(result["collection"][3]); 仍然无法工作。

您可以简单地始终返回OrderedDictionary,而不是返回列表或字典吗?它保留其原始顺序,因此您可以按索引或按键查找。

【讨论】:

  • 我了解 .NET 的各种 JSON 库。我的问题源于尝试在 SQL Server 中使用 Newtonsoft:它可以完成,但不是没有很多严重的跳跃。
猜你喜欢
  • 2011-10-21
  • 2018-12-29
  • 2016-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-05
相关资源
最近更新 更多