1

我对 jobject 和 jarray linq 查询有一些问题。我收到此错误:

Unable to cast object of type 'Newtonsoft.Json.Linq.JObject' to type     'Newtonsoft.Json.Linq.JArray'.

我的代码:

string fetchResult = JsonConvert.SerializeObject(sidebar, Formatting.Indented);
JObject rss = JObject.Parse(fetchResult);

var jsonModel = from item in (JArray)rss["RegistrationCase"]
                        select new DataList
                        {
                            RegistrationTypeName = item["RegistrationTypeName"].Value<string>(), };

如果我删除(Jarray)我得到:无法访问 Newtonsoft.Json.Linq.JProperty 上的子值。

Json,jobject:例如:我想要 RegistrationTypeName、FirstName 和 JournalNumber 的值。

{
"Status": null,
"RegistrationCase": {
"RegistrationTypeName": " ",
"ExpireDate": null,
"PersonId": 7,
"Person": {
  "FirstName": " ",
  "GenderValue": 2,
  "Gender": 2,
},
"UserId": 7,
"User": {
  "UserName": "NO-DOM\\wme",
  "LastName": null,
  "Id": 7,
},
"Transactions": [],
"Comments": [],
"CustomData": [
  {
    "Key": "JournalNumber",
    "Value": "0654-84148-00000-25",
    "Id": 3,
  },
  {
    "Key": "IsConsentGiven",
    "Value": "False",
    "Id": 4,
  },
  {
],
"FileId": null,
"File": null,
"Id": 7,
 }
}
4

1 回答 1

2

您可以直接获取这些值,例如:

   var RegistrationTypeName = rss["RegistrationCase"]["RegistrationTypeName"];
   var FirstName = rss["RegistrationCase"]["Person"]["FirstName"];
   var JournalNumber = rss["RegistrationCase"]["CustomData"][0]["Value"];
于 2013-07-25T14:06:19.060 回答