简体   繁体   English

提取部分 JSON 内容(属性)并转换为 c# object?

[英]Extract part of the JSON content (property) and convert to c# object?

How to get part of json content and convert to c# object.如何获取 json 内容的一部分并转换为 c# object。 API returning below JSON content. API 返回低于 JSON 内容。 from that I need to get "ContentItems" part and convert to C# object.从中我需要获取“ContentItems”部分并转换为 C# object。 I already created the "ContentItems" Class.我已经创建了“ContentItems”Class。

I am using Newtonsoft.Json .我正在使用Newtonsoft.Json It is hard to get to the part of it.很难理解它的一部分。

{
    "SubmissionId": 69,
    "SubmissionKey": "a1c78c25-b885-4ec0-8032-040fca6b447e",
    "CreatedUserId": 4,
    "ResourceType": "Article",
    "Files": [
       {
        "SubmissionFileId": 149,
        "FileName": "ARMA-81-0475.xml",
         "ContentItems": [
                {
                "ContentItemId": 132,
                "ContentKey": "8f8b2f74-ba29-4b7d-a44f-8d119dc2aab7",
                "SubmissionFile": null,                    
                }
           ]
        }
    ]
}

ContentItems.cs内容项.cs

public class ContentItems
{
    public int ContentItemId { get; set; }
    public string ContentKey { get; set; }
    public string SubmissionFile { get; set; }
}

Try this:尝试这个:

dynamic obj = JsonConvert.DeserializeObject(jsonContent);
var item = obj.Files[0].ContentItems[0].ToObject<ContentItems>();

Here is how you can extract just ContentItems from your JSON using JSONPath以下是如何使用 JSONPath 从 JSON 中仅提取ContentItems

var recs = JObject.Parse("*** JSON Text ***").SelectTokens("$..Files[*].ContentItems[*]")
    .Select(j => JsonConvert.DeserializeObject<ContentItems>(j.ToString()));

foreach (var rec in recs)
    Console.WriteLine(rec.ContentItemId);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM