Newtonsoft Json令牌名称和值

时间:2015-11-09 11:45:41

标签: .net json vb.net

告诉我我做错了什么。

我有像这样的Json格式

    {"RuleOne": "1", "RuleTwo": "Two", "RuleFive": "[1-5]"}

我可以为每个json字符串设置许多不同的规则。每个规则使用相同的算法进行评估。所以我知道RuleOne将始终是一个数字,RuleTwo将始终是一个字符串,RuleFive将始终是一个范围,依此类推。我的评估方法做到了这一切。这不是我的问题。

我使用了Newtonsoft.Json库和Newtonsoft.Json.Linq.JObject

如何评估令牌的名称和价值?

    For Each token In json.First.SelectTokens(String.Empty)
        Select Case token.??Name??()
            Case "RuleOne"
                DoThisJob(token.??Value??)
            Case "RuleTwo"
                DoThisOtherJob(token.??Value??)
        End Select
    Next

1 个答案:

答案 0 :(得分:0)

通过使用JObject函数获取Properties()的属性来迭代For Each token In json.Properties() Select Case token.Name Case "RuleOne" DoThisJob(token.ToObject(Of Object)) Case "RuleTwo" DoThisOtherJob(token.ToObject(Of Object)) End Select Next 的属性:

Properties()

注意 - 我在json上直接使用了json。如果JSON中的数据结构不同,您可以修改ICollectionView view = CollectionViewSource.GetDefaultView(customerList); view.Filter = obj => { string item = obj as string; return (item.ToLower().Contains(YourFilter)); }; 。但是,您在问题中提到的任务可以使用上述方法完成。