加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#从反序列化的json对象中获取值

发布时间:2020-12-15 23:37:05 所属栏目:百科 来源:网络整理
导读:我目前正在使用以下代码使用Newtonsoft.Json nuget数据包反序列化一个json字符串: var data = (JObject)JsonConvert.DeserializeObject(json); 现在我收到的格式如下: {{ "meta": { "rap": 2098,"count": 5 },"data": [ { "name": "Gold Tetramino of Mast
我目前正在使用以下代码使用Newtonsoft.Json nuget数据包反序列化一个json字符串:

var data = (JObject)JsonConvert.DeserializeObject(json);

现在我收到的格式如下:

{{  "meta": {    "rap": 2098,"count": 5  },"data": [    {      "name": "Gold Tetramino of Mastery","rap": 735,"uaid": "16601901","link": "https://www.roblox.com/Gold-Tetramino-of-Mastery-item?id=5786047","img": "https://t4.rbxcdn.com/081337d7ea86e6a406512aaa83bbcdeb","serial": "---","count": 1    },{      "name": "Silver Tetramino of Accomplishment","rap": 385,"uaid": "16601900","link": "https://www.roblox.com/Silver-Tetramino-of-Accomplishment-item?id=5786026","img": "https://t1.rbxcdn.com/60da69cd76f8dad979326f63f4a5b657",{      "name": "Subzero Ski Specs","rap": 370,"uaid": "155175547","link": "https://www.roblox.com/Subzero-Ski-Specs-item?id=19644587","img": "https://t4.rbxcdn.com/8ead2b0418ef418c7650d34103d39b6d",{      "name": "Rusty Tetramino of Competence","rap": 319,"uaid": "16601899","link": "https://www.roblox.com/Rusty-Tetramino-of-Competence-item?id=5785985","img": "https://t2.rbxcdn.com/968ad11ee2f4ee0861ae511c419148c8",{      "name": "Bluesteel Egg of Genius","rap": 289,"uaid": "16601902","link": "https://www.roblox.com/Bluesteel-Egg-of-Genius-item?id=1533893","img": "https://t7.rbxcdn.com/48bf59fe531dd1ff155e455367e52e73","count": 1    }  ]}}

现在我试图从中获取以下值:

"rap": 2098,

我只需要2098而且我一直在尝试以下代码:

string rap = data["rap"].Value<string>();

但遗憾的是,这不起作用.有谁知道如何获得价值?

解决方法

尝试:

var result = data["meta"]["rap"].Value<int>();

要么

var result = data.SelectToken("meta.rap").ToString();

或者如果您不想要传递整个路径,您可以像这样搜索属性:

var result = data.Descendants()
                 .OfType<JProperty>()
                 .FirstOrDefault(x => x.Name == "rap")
                 ?.Value;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读