【问题标题】:How do I parse JSON children using JSON.NET?如何使用 JSON.NET 解析 JSON 子级?
【发布时间】:2014-08-18 03:13:06
【问题描述】:

我正在尝试以从以下方式获得的 JSON 格式的 textures: […] http://t0.rbxcdn.com/ca063a6bab4e145de481384a8a62d64f 并将其显示在列表框中。

我有这个代码:

Public Class ReturnObject
    Public Property Url As String
    Public Property textures As String
    Public Property obj As String
    Public Property mtl As String
    Public Property Final As Boolean
End Class
Dim input2 As String = obj.Text
Dim json2 As ReturnObject = JsonConvert.DeserializeObject(Of ReturnObject)(input2)
obj.Text = HttpGet("http://www.roblox.com/thumbnail/resolve-hash/" + json2.obj)
mtl.Text = HttpGet("http://www.roblox.com/thumbnail/resolve-hash/" + json2.mtl)

但我得到了错误

读取字符串时出错。意外令牌:StartArray。路径“纹理”, 第 1 行,位置 313。

【问题讨论】:

  • 嘿,我在写完帖子之前不小心点击了发布。我添加了其余的内容。

标签: json vb.net json.net


【解决方案1】:

textures 是 JSON 中的一个数组,包含一个字符串(注意括号*):

"textures":["bff5714f0b959385663b1fe030b87064"]

你可以在你的班级结构中反映出来(注意括号**):

Public Class ReturnObject
    Public Property Url As String
    Public Property textures As String()
    Public Property obj As String
    Public Property mtl As String
    Public Property Final As Boolean
End Class

* 它们是方括号
** 它们是括号

【讨论】:

  • 好的,如果我想这样做呢? texture.Text = (json5.textures) 可以吗
  • @user3851593:texture 是什么?例如,如果它是多行文本框或标签,请使用 String.Join(Environment.Newline, json5.textures)。如果它是您问题中所述的列表框,则需要修改 Items 集合,而不是 Text 属性的值。
  • Texture 是一个富文本框。我只是尝试这样做,我得到了code'{"Object reference not set to an instance of an object."}'
  • 然后在调试器中检查您的值。哪个是Nothingjson5? json5.textures?
  • json5 来自哪里?是否可能缺少textures?毕竟你在问题中使用了json2
猜你喜欢
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 2014-03-05
  • 2014-11-19
  • 2012-12-07
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
相关资源
最近更新 更多