首页 > 解决方案 > 使用linq将Json对象获取到c#中的单个项目

问题描述

标签: c#json

解决方案


好的,我用 Linq 让它工作了。作为参考粘贴下面的代码

var respnse1 = client.GetAsync(hostmi).Result;
string content1 = respnse1.Content.ReadAsStringAsync().Result;
JObject joResponse = JObject.Parse(content1);
JObject ojObject = (JObject)joResponse["usermachine"];
JArray array = (JArray)joResponse["pInterval"];

Json 字符串如下:

{
"usermachine": {
    "employeeid": "1123",
    "employeename": "EMP 001 NAME" 
},
"pInterval": [
    {
        "pMachineID": "E0138",
        "pmachinetoLocationSequence": 1
    },
    {
        "pMachineID": "E0138",
        "pmachinetoLocationSequence": 2
    },
    {
        "pMachineID": "E0138",
        "pmachinetoLocationSequence": 3
    }
  ]
} 

(我在格式化和粘贴方面尽了最大努力。希望它能坚持,还在学习!!)你会发现在主/从关系表中存在一个数组(pInterval)。现在获取主数据代码如下:

string employeeid   = (string) ojObject.SelectToken("employeeid");
string employeename = (string) ojObject.SelectToken("employeename");

现在获取详细数据如下

var pmachinetoLocationSequence= (from p in arrayselect p["pmachinetoLocationSequence"]).ToList();
foreach (var item in pmachinetoLocationSequence)
{
   Console.WriteLine(item.Value<string>().ToString());
}

有没有办法在上面的 var pmachinetoLocationSequence 行中获取多个字段?


推荐阅读