Visual basic 和 Json.net Web 请求

2023-12-10

基本上我想做的是制作一个程序来列出英雄联盟的游戏信息..使用 API 来提取数据。其工作原理是,您搜索用户名,它会返回链接到该帐户的整数,然后您使用该整数搜索该帐户的所有信息、EG 帐户级别、获胜、损失等。 我遇到了一个我似乎无法弄清楚的问题。请注意,我对 Json.net 很陌生,所以对它的使用经验很少。下面是如何找到用户 ID 的搜索,第一部分是用户名减去名称中的任何空格,接下来是 ID,这是我需要的信息。

{"chucknoland":{"id":273746,"name":"Chuck Noland","profileIconId":662,"summonerLevel":30,"revisionDate":1434821021000}}

我必须声明变量错误才能获取数据,因为我所做的一切都返回为 0。

这些是我必须在其中存储 ID 的以下类

    Public Class ID
    Public Shared id As Integer
    Public Shared name As String
End Class

查看此处看到的先前示例VB.net 中 json.net 的简单工作示例

他们能够通过创建一个包含其中所有内容的容器类来解决这个问题。我的问题是我寻找的数据总是在变化。第一组总是与示例中显示的“Chucknoland”不同。有人能够解释我如何提取这些信息吗?

请注意,变量 rRegion 具有所在服务器的值,Chuck Noland 在 OCE 上,sSearch 是用户名。由于 API 密钥存在问题,我不得不从代码中删除 API 密钥...但是 URL返回提供的 Json。

 'URL string used to grab Summoner ID
    jUrlData = "https://oce.api.pvp.net/api/lol/" + rRegion + "/v1.4/summoner/by-name/" + sSearch + 


    ' Create a request for URL Data.
    Dim jsonRequest As WebRequest = WebRequest.Create(jUrlData)

    'request a response from the webpage
    Dim jsonResponse As HttpWebResponse = CType(jsonRequest.GetResponse(), HttpWebResponse)

    'Get Data from requested URL
    Dim jsonStream As Stream = jsonResponse.GetResponseStream()

    'Read Steam for easy access
    Dim jsonReader As New StreamReader(jsonStream)

    'Read Content
    Dim jsonResponseURL As String = jsonReader.ReadToEnd()


    jUrlString = jsonResponseURL

这是我必须获取信息的请求,这是我尝试用来显示该 json 的 ID 的代码。

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    Dim obj As ID

    obj = JsonConvert.DeserializeObject(Of ID)(jUrlString)

    MsgBox(obj.id)


End Sub

有谁能解释一下我该如何让它发挥作用?


处理这个问题的一种方法是将项目放入字典中,其中键是属性名称。

你的课程不太合适,除非你只想name and id而不是其余的信息。但使用字典你就不再需要它了。 “技巧”是跳过第一部分,因为您不知道名字。我可以想到两种方法来做到这一点,但可能还有更多/更好的方法。

由于 json 大量使用字符串键,因此创建一个字典,然后从中获取实际项目的数据:

jstr = ... from whereever
' create a dictionary
Dim jResp = JsonConvert.DeserializeObject(Of Dictionary(Of String, Object))(jstr)

' get the first/only value item
Dim jobj = jResp.Values(0)         ' only 1 item

' if you end up needing the name/key:
'Dim key As String = jResp.Keys(0)

' deserialize first item to dictionary
Dim myItem = JsonConvert.DeserializeObject(Of Dictionary(Of String, Object))(jobj.ToString)

' view results
For Each kvp As KeyValuePair(Of String, Object) In myItem
    Console.WriteLine("k: {0}  v: {1}", kvp.Key, kvp.Value.ToString)
Next

Output:

k: ID v: 273746
k: 姓名 v: 查克·诺兰
k: profileIconId v: 662
k:召唤师等级v:30
k:修订日期 v:1434821021000

Using String, String也可能有效,但它会将数字转换为字符串(30变成"30"),这通常是不可取的。

在探索时,我发现了另一种获取对象数据的方法,但我不确定这是否是一个好主意:

' parse to JObject
Dim js As JObject = JObject.Parse(jstr)
' 1 =  first item; 2+ will be individual props
Dim jT As JToken = js.Descendants(1)

' parse the token to String/Object pairs
Dim myItem = JsonConvert.DeserializeObject(Of Dictionary(Of String, Object))(jT.ToString)

结果相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual basic 和 Json.net Web 请求 的相关文章

  • 如何限制 JSON 访问?

    我有一个 Web 应用程序 可以从新创建的 JSON API 中提取数据 我的静态 HTML 页面通过 JavaScript 从静态 HTML 页面动态调用 JSON API 如何限制对 JSON API 的访问 以便只有我 我的网站 可以
  • 如何使用 jackson 反序列化为 Kotlin 集合

    我想要的示例代码 data class D val a String val b Int val jsonStr a value1 b 1 a value2 b 2 what I need val listOfD List
  • MVC3 和实体框架

    我的问题很简单 将 edmxMVC3 项目的 Web 应用程序的模型文件夹中的文件吗 我的答案非常简单 不要用数据访问逻辑和数据建模搞乱表示层 整个 MVC 应用程序 Visual Studio 解决方案中从下到上至少有 4 个项目 1 P
  • jq Streaming - 过滤嵌套列表并保留全局结构

    在一个大型 json 文件中 我想从嵌套列表中删除一些元素 但保留文档的整体结构 我的示例将其输入为 但真实的输入足够大以要求流式传输 keep untouched keep this this list filter this keep
  • 使用管理员帐户运行asp.net程序

    我需要使用管理员帐户并启用桌面交互从 ASP NET 应用程序运行一个控制台应用程序 我尝试过下面的代码 控制台应用程序运行正常 但在网络服务帐户内 有什么想法如何在管理员帐户下运行控制台吗 string enginePath Server
  • asp.net c# 将数据集中的数据转换为电子邮件正文?

    从数据集到电子邮件正文的最佳方式是什么 我有一个 net 控制台应用程序 用于根据存储过程的结果发送电子邮件通知 并且想知道如何最好地从 SQL 数据转到电子邮件正文 带有颜色和字体的 html 正文是最好的 但纯文本也可以 thanks
  • 命令式代码与声明式代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图理解命令式范例和声明式范例之间的区别 因为我必须对 Visual Basic 进行分类 NET 在不同的范式中 除了面向对象之外
  • ASP.Net MVC MvcBuildViews 大幅增加编译时间

    我们有一个项目 希望构建视图 以便在视图的 cshtml 文件中有任何错误时生成编译时错误 尽管如此 编译时间仍然急剧增加 MvcBuildViews true需要 62 秒 MvcBuildViews false需要 9 秒 这是可以接受
  • 使用 jQuery 获取 JSON Facebook Graph API 用户信息

    我正在尝试使用图形 API 来获取有关用户的一些基本信息 无需用户授权 只需获取公共详细信息 我正在尝试使用 jQuery 和 getJSON 来获取数据并解析它 但我很难弄清楚如何访问我想要的键值对 我想要有类似的东西 var fburl
  • asp.net net.mail - 在调试模式下将所有电子邮件路由到不同的电子邮件地址

    无论如何 有没有办法让所有电子邮件发送到不同的地址System Web HttpContext Current IsDebuggingEnabled是真的 或者我是否需要一个新的类来用于到处发送电子邮件 我会设置一个 SMTP 服务器 并让
  • Python 3 中的递归搜索 JSON/DICT

    我在 Python 3 中实现了一些 API 这些 API 允许我根据班级代码接收有关学校的信息 但我想知道如何通过类代码获取信息 例子 我输入代码GF528S我希望程序告诉我班级 3C INF 地址 Address 1 Milan 如果可
  • 使用本地 JSON 数据填充 jQuery Mobile ListView

    我正在尝试使用本地 JSON 信息填充 JQM ListView 但是 不会创建任何列表项 任何帮助 将不胜感激 这是我的代码 JSON 文件结构 name test calories 1000 fat 100 protein 100 ca
  • Razor View Engine 是否适用于 Mono?

    我尝试搜索了一下 但没有找到答案 Razor View Engine 在 Mono 中工作吗 是的 它确实 我让它在 Linux 上与 mono 一起工作 You need mono 2 10 2 from the stable sourc
  • 在 C# 中反序列化 JSON 日期时出现问题 - 添加 2 小时

    将 JSON 日期反序列化为 C DateTime 时 我们遇到了一个棘手的问题 代码是 JavaScriptSerializer serializer new JavaScriptSerializer jsonTrechos jsonTr
  • 如何在联系我们页面中使用用户电子邮件发送电子邮件?

    我正在创建一个联系我们页面 并且我想从该页面接收邮件 因为它的邮件来自用户邮件 我写了这段代码 var client new SmtpClient smtp gmail com 587 Credentials new NetworkCred
  • 实体框架 - 循环更新属性

    我正在尝试找到一种方法来循环 EF 对象的属性并更新这些属性的值 更具体地说 我有 50 个字段 其中最多填充 50 个下拉列表 所有 50 个可能都需要填充 也可能不需要填充 为了解决这个问题 我有一个中继器 最多可以创建 50 个 DD
  • VB SQL 语句未选择正确的行

    我试图使用 SELECT 语句在我的数据库中 选择 一个人 但它没有选择正确的人 我也不确定为什么 我正在使用访问数据库 数据库连接代码 Imports System Data OleDb Module Database Connectio
  • App.Config 和 Web.Config 之间的区别?

    当在 wpf 中构建桌面应用程序时 您可以阅读问题文档并在人们的答案引用 web config 时安全地替换 app config 吗 如果是这样 您是否需要注意任何明显的陷阱 tnx 阅读文档 http msdn microsoft co
  • 如何以 JSON-LD 返回 SPARQL 结果?

    返回 SPARQL 查询结果的好方法是什么JSON LD http www w3 org TR 2014 REC json ld 20140116 最好靠近标准化 JSON 格式 http www w3 org TR 2013 REC sp
  • 本地化 ASP.NET 资源的滑动过期

    假设我们有 2 个站点 myDomain AU 和 myDomain RU 具有相同的代码和本地化资源文件 resx 和 ru resx 我们预计大多数英语用户将使用 AU 网站 大多数俄语用户将使用 RU 网站 但是 如果 AU 域的某些

随机推荐

  • MySQL MIN/MAX 返回正确的值,但不返回相关的记录信息

    我真的很困惑 我显然不理解最小 最大概念 我正在尝试从 work type 和 work id 分组中获取最新行 如果我从 MIN 更改为 MAX 它会更改返回的时间戳 但它永远不会带来该记录中的状态信息 Example SELECT CO
  • iTask - 将参数值传递给匿名过程

    我需要创建一定数量的 iTask 来执行动态数组和记录中其他字段的操作 每个 iTask 都在该数组的特定部分中运行 该数组是记录中的一个字段 它作为 var 参数传递给 iTask 数组字段中的操作进展顺利 但其他记录字段在所有任务完成工
  • 在代码中保存具有特定名称的 jupyter 笔记本

    我有一个 Jupyter 笔记本 它或多或少是一个完成事情的 模板 例如 笔记本是每个国家经济数据的模板 所有的绘图和分析都是标准化的 我正在寻找一种以编码方式完成保存的方法 而不是自己手动命名 无论如何 如果我有一个变量标记为 my as
  • 当鼠标悬停在其中一个元素上时,突出显示具有相同类的所有元素

    在 JavaScript 中 当鼠标悬停在其中一个项目上时 是否可以突出显示具有相同类的所有项目 例如 如果我在课堂上有两个段落p1和全班的 2 段p2 我想要两个元素p1在鼠标悬停时突出显示 并且我还希望 p2 的两个元素在鼠标悬停时突出
  • 如何获取 Instagram 个人资料图片

    在我的应用程序中 想要将 Instagram 个人资料图片放入他的帐户中 如何以编程方式从 Instagram 获取用户的个人资料图片 例如 使用 Instagram API 用户端点 https api instagram com v1
  • 找不到类型或命名空间名称[重复]

    这个问题在这里已经有答案了 我有一个C 包含多个项目的解决方案Visual Studio 2010 一个是测试项目 我称之为 PrjTest 另一个是Windows Forms Application项目 我称之为 PrjForm 还有Pr
  • 如何设置sbt的堆大小?

    我正在使用 SBT 0 12 0 我已经阅读了有关堆栈溢出的其他答案并遵循了它们 但是它们都没有帮助 例如 create ForkRun类 我在使用 sbt 期间没有观察到任何分叉进程 设置环境变量JAVA OPTS 它已设置 但 sbt
  • 匹配所有语言php字母的正则表达式

    我花了几个小时试图在 php 中找到正确的正则表达式来匹配任何语言字母 但防止它留出空间 我试过这个 p L 这没关系 但看起来它允许空间 然后我尝试了这个 w 看起来仍然有空间 有人可以帮忙吗 您需要指定 Unicode 修饰符u to
  • 在 Swift 中使用 AlamoFire 创建通用方法

    我使用 AlamoFire 进行 API 调用 并且在我的项目中都有这样的内容 static func login userName String password String gt User let parameters userNam
  • 如何在android中的警报对话框中添加阴影效果

    我想在警报对话框中添加阴影效果 我想要在我的对话框中出现这种类型的阴影效果在这里我发布了3个文件 第一个是style xml 第二个是theme java 第三个文件是demo bg xml文件 我已经尝试过这样的操作 Style xml
  • 从外部触发淘汰赛事件

    我有以下 html 表单中的 Select Element
  • 获取当前键盘光标位置

    无论如何 是否可以像获取鼠标光标位置一样全局获取键盘光标 插入符号 当前位置的坐标mouseLocation 不 没有办法在全球范围内做到这一点 如果您想在自己的应用程序中执行此操作 例如在 NSTextView 中 您可以这样做 NSRa
  • 为什么在 WPF 自定义 2D 绘图中使用具有破折号图案的笔会导致巨大(!)性能下降?

    希望有人能阐明这一点 以便我可以使用带有破折号图案的笔 我正在写一个可滚动的图表 Panel inside ScrollViewer实现IScrollInfo 在 WPF 中使用DrawingVisual s DataContext Dra
  • 使用 vs 2010 在负载测试中测试迭代设置

    我想测试 250 个并发用户的应用程序 我对负载测试设置有一些疑问 实现上述目标的正确设置应该是什么 我已将最大用户数设置为 250 并将运行设置中的测试迭代设置为 1 那么它会发送 250 个虚拟请求吗 or 我必须将最大用户数设置为 2
  • string类与其他类有何区别?

    我们可以做的 String string ourstring 但我们不能为用户定义的类创建这样的对象 UserClass uc Java 如何允许我们直接设置值java lang String只上课 java lang String是一个特
  • 如何在 IgGrid 单元格(Infragistics)中获取正则表达式?

    如何在 igGrid 更新中的 igTextEditor 上使用正则表达式 我尝试使用验证选项 但没有成功 schedulerTable igGrid columns scope schedulerColumns width 87 heig
  • 如何使用 React 删除待办事项列表中的项目

    我正在使用 React 创建一个待办事项列表应用程序 在我的应用程序中 当我单击 x 按钮删除项目并使用 console log 检查当前数组时 我可以看到该数组已正确更新为我要删除的项目从数组列表中 但 Dom 只渲染我想要删除的项目而不
  • 提高自定义无限滚动的速度

    我有一个自定义的无限滚动 运行完美 但速度非常慢 这是处理 ajax 请求的脚本 function ga infinite scroll trigger this on infinite scroll add filter woocomme
  • JFreeChart X 轴标签超出图表区域

    我有一个JFreeChart图表与DateAxis作为域 它看起来非常漂亮 但是最后一个轴标签有时会超出图表区域 这是要重现的示例代码 public class LineChart AWT extends ApplicationFrame
  • Visual basic 和 Json.net Web 请求

    基本上我想做的是制作一个程序来列出英雄联盟的游戏信息 使用 API 来提取数据 其工作原理是 您搜索用户名 它会返回链接到该帐户的整数 然后您使用该整数搜索该帐户的所有信息 EG 帐户级别 获胜 损失等 我遇到了一个我似乎无法弄清楚的问题