【问题标题】:Check if an item is available in a JSON.NET Newtonsoft object检查 JSON.NET Newtonsoft 对象中的项目是否可用
【发布时间】:2018-09-18 04:18:02
【问题描述】:

我有我想要的代码行:

mid= jToken.Value<double?>("mid") ?? 100; 

在 C# 中,但我在 VB.NET 中需要它,我从 Get value from JToken that may not exist (best practices) 获得它

但我在将其转换为 VB 中的正确语法时遇到了一些麻烦。我试过了

Dim mid As String = item.Value(Of String)("mid") ?? "" 

但它不喜欢吗?

如果值不在对象中,我希望以空字符串或空白结尾。这是我的完整代码

Dim obj As JObject = JObject.Parse(respHTML)
Dim records As JArray = DirectCast(obj("records"), JArray)
For i As Integer = 0 To records.Count - 1
    Dim item As JObject = DirectCast(records(i), JObject)
    Dim pmid As Integer = item("pmid").Value(Of Integer)
    Dim pmcid As String = item("pmcid").Value(Of String)
    Dim doi As String = item("doi").Value(Of String)
    '  Dim mid As String = item("mid").Value(Of String)
    Dim mid As String = item.Value(Of String)("mid") ?? ""   
    MessageBox.Show(pmid.ToString + " " + pmcid + " " + doi + " " + mid)
Next

【问题讨论】:

标签: vb.net json.net


【解决方案1】:

我最终得到:

        Dim obj As JObject = JObject.Parse(respHTML)
        Dim records As JArray = DirectCast(obj("records"), JArray)
        For i As Integer = 0 To records.Count - 1
            Dim item As JObject = DirectCast(records(i), JObject)
            Dim pmid As String = If(item.Value(Of String)("pmid"), "")
            Dim pmcid As String = If(item.Value(Of String)("pmcid"), "")
            Dim doi As String = If(item.Value(Of String)("doi"), "")
            Dim mid As String = If(item.Value(Of String)("mid"), "")
            MessageBox.Show(pmid.ToString + " " + pmcid + " " + doi + " " + mid)
        Next

消息框行将替换为数据库调用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多