【问题标题】:How do you read this format of data?你如何阅读这种格式的数据?
【发布时间】:2018-01-27 21:33:37
【问题描述】:

我有以下一组数据(大很多,我已经删减了)

[{
    "title": "Brave",
    "year": "2012",
    "imdbid": "tt1217209",
    "scid": "2"
}, {
    "title": "The Watch",
    "year": "2012",
    "imdbid": "tt1298649",
    "scid": "1"
}]

我希望能够通过查找 scid : 2 来获得“标题”,例如 Brave

这与我熟悉的其他 Json 格式不相似,因为另一个儿子有父节点和子节点,但事实并非如此。

我需要做什么才能获得所需的数据? 我只需要能够读取 vb.net 中的值

编辑:我相信这是 Javascript Json 格式?

【问题讨论】:

    标签: vb.net visual-studio vb.net-2010


    【解决方案1】:

    对我来说,这似乎是一个非常标准和简单的 json。
    您可以使用这个简单的代码获取您的对象。

    首先你有一个这样的类

    Class myObj
    
        Public Property Title As String
        Public Property year As Integer 
        Public Property imdbid As String
        Public Property scid As Integer
    
    End Class
    

    然后你得到它

    Sub Main()
    
        Dim input = File.ReadAllText("d:\temp\test2.json")
        Dim list = JsonConvert.DeserializeObject(Of List(Of myObj))(input)
        Dim obj = list.FirstOrDefault(Function(x) x.scid = 2)
        Console.WriteLine(obj.Title)
    End Sub
    

    (当然,您需要在项目中引用一个 json 解析库,例如 newtonsoft.json,如其他答案中所述)

    【讨论】:

      【解决方案2】:

      你需要安装一个叫Newtonsoft.json的包,可以像这样从package manager console安装:

      install-package Newtonsoft.json
      

      并像这样包含它:

      Imports Newtonsoft.Json
      Imports Newtonsoft.Json.Linq
      

      您的代码可能如下所示:

      Dim json As String = line
      
          Dim ser As JObject = JObject.Parse(json)
          Dim data As List(Of JToken) = ser.Children().ToList
      
          For Each item As JProperty In data
              item.CreateReader()
              Select Case item.Name
                  Case "metadata"
                      'MsgBox(item.Name)
                  Case "data"
                      For Each msg As JObject In item.Values
      
                          Dim scid As String = msg("scid")
                          Dim title As String = msg("title")
      
                      Next
              End Select
      
      
          Next
      

      更多示例可以参考these代码示例,祝你好运。

      【讨论】:

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