【问题标题】:Getting value from jsoncode using VB.net使用 VB.net 从 jsoncode 获取价值
【发布时间】:2017-02-12 13:47:57
【问题描述】:

你好,我有这个 json 代码,我想得到 21、black jack、tongits 的值以及它的分数。

{
  "id": 1,
  "status": "PARTIAL",
  "scores": [
    {
      "scoreCard": {
        "21": 0,
        "black jack": 0,
        "tongits": 0
      },
      "question": "Favorite game",
      "questionnaireId": 1
    },
    {
      "scoreCard": {
        "red": 0,
        "green": 0,
       "blue": 0,
        "black": 0
      },
      "question": "Favorite color",
      "questionnaireId": 2
    }
  ]
}

这是我的 vb 代码,我只得到了最喜欢的游戏和最喜欢的颜色

Dim webC As New System.Net.WebClient
     Dim json As String =webC.DownloadString("http://localhost:8080/report/survey/1/result")

    Dim o As JObject = JObject.Parse(json)

    Dim results As List(Of JToken) = o.Children().ToList

    For Each item As JProperty In results
        item.CreateReader()
        Select Case item.Name

            Case "scores"

                Dim question As String

                For Each subitem As JObject In item.Values
                    question = subitem("question")
                    Listview2.Items.Add(question)

                Next
        End Select
    Next

【问题讨论】:

  • 你可以在 1-2 行代码中反序列化它
  • 你到底是什么意思?

标签: jquery .net json vb.net


【解决方案1】:

解析数据以获得一两件事更容易:

Dim jstr = ...from where ever...

Dim jData = JObject.Parse(jstr)

Console.WriteLine(jData("scores")(0)("scoreCard")("21"))
Console.WriteLine(jData("scores")(0)("scoreCard")("black jack"))
Console.WriteLine(jData("scores")(0)("scoreCard")("tongits"))

Console.WriteLine(jData("scores")(0)("question"))
Console.WriteLine(jData("scores")(1)("question"))

scores[ ... ] 附件所指示的数组,因此需要对其进行索引,否则只需使用缩进和智能来找出您想要的任何内容。结果:

0
0
0
最喜欢的游戏
最喜欢的颜色

但是,由于您至少要完成 4 件事:2 个问题和 3 个分数,所以更容易deserialize the data to a class object 并从属性中获取您想要的内容。

【讨论】:

  • 如果有效,要做的就是单击复选标记以接受答案。接受您认为有用的答案和点赞帖子可以帮助其他用户找到好的答案。简短的Tour 详细解释了 SO 的工作原理。
猜你喜欢
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多