Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提取部分JSON内容(属性)并转换为c#对象?_C#_Asp.net_Json_Json.net - Fatal编程技术网

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

提取部分JSON内容(属性)并转换为c#对象?,c#,asp.net,json,json.net,C#,Asp.net,Json,Json.net,如何获取部分json内容并转换为c#对象。API返回到JSON内容下面。从中我需要得到“ContentItems”部分并转换为C#object。我已经创建了“ContentItems”类 我使用的是Newtonsoft.Json。这是很难做到的一部分 { "SubmissionId": 69, "SubmissionKey": "a1c78c25-b885-4ec0-8032-040fca6b447e", "CreatedUserId": 4, "Resource

如何获取部分json内容并转换为c#对象。API返回到JSON内容下面。从中我需要得到“ContentItems”部分并转换为C#object。我已经创建了“ContentItems”类

我使用的是
Newtonsoft.Json
。这是很难做到的一部分

{
    "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

public class ContentItems
{
    public int ContentItemId { get; set; }
    public string ContentKey { get; set; }
    public string SubmissionFile { get; set; }
}
试试这个:

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

以下是如何使用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);
var recs=JObject.Parse(“***JSON Text***”).SelectTokens(“$…Files[*].ContentItems[*]”)
.Select(j=>JsonConvert.DeserializeObject(j.ToString());
foreach(记录中的var记录)
Console.WriteLine(rec.ContentItemId);

这是否回答了您的问题?