【问题标题】:Getting data with Json.Net使用 Json.Net 获取数据
【发布时间】:2016-11-22 19:03:56
【问题描述】:

我想开始深入研究本网站使用的一些 API。 http://api.champion.gg/

但是,我在理解如何获取特定数据方面遇到了一些麻烦。 例如,其中一个 API url 会返回此数据。

    [
  {
    "games": 1650,
    "winPercent": 46.9,
    "order": [
      "Q",
      "W",
      "E",
      "Q",
      "Q",
      "R",
      "Q",
      "W",
      "Q",
      "W",
      "R",
      "W",
      "W",
      "E",
      "E",
      "R",
      "E",
      "E"
    ],
    "role": "Support"
  },
  {
    "games": 9769,
    "winPercent": 51.8,
    "order": [
      "Q",
      "W",
      "E",
      "Q",
      "Q",
      "R",
      "Q",
      "W",
      "Q",
      "W",
      "R",
      "W",
      "W",
      "E",
      "E",
      "R",
      "E",
      "E"
    ],
    "role": "Middle"
  }
]

而且id喜欢抢

  • 游戏
  • winPercent
  • order(我明白这是一个数组?)

我可以使用 JSON 类生成器生成 JSON 类吗?那行得通吗?如果是这样,我将如何使用它。

编辑:我生成了类..

所以我的班级看起来像

`Public Class Class1
    Public Property games As Integer
    Public Property winPercent As Single
    Public Property order() As String
    Public Property role As String
End Class`

我能做到吗?

`        Dim obj = JsonConvert.DeserializeObject(Of Class1)(RichTextBox1.Text)
        MsgBox(obj.games)`

【问题讨论】:

  • Visual Studio 将为您创建类:将 json 复制到剪贴板,然后 Edit Menu -> Paste Special -> Paste Json as classes 或使用在线机器人,如果你有一个旧版本:jsonutils.com
  • 谢谢!我将如何使用这些类?
  • 您是在问如何在 c# 中下载和反序列化 JSON 吗?已经有很多与此相关的问题,例如deserializing JSON to .net object using NewtonSoft (or linq to json maybe?)
  • 我已经更新了 OP 并提出了更多问题。
  • 当您在 SO 上发帖时,您不会打开支持票证,在此您不断向帖子添加新问题,直到我们解决您的所有问题。每个帖子问一个问题。这里有很多关于反序列化的问题。 Would I be able to do... 是一个糟糕的问题,因为您可以按一个按钮自己找出答案。请阅读How to Ask 并使用tour

标签: json vb.net json.net


【解决方案1】:

您的类是正确的,您可以使用它来反序列化您的 JSON,如下所示:

var result = JsonConvert.DeserializeObject<List<Class1>>(json);

然后,使用循环(例如 foreach),您可以访问 result 的元素。

foreach (var item in result)
{
    Console.WriteLine(item.games);
}

这段代码是用 C# 编写的,但你明白了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多