当前位置:   article > 正文

c#读取json某一节点数据_使用JsonSerializer选择性地读取部分JSON数据并填充c#对象...

c# 如何检索json中某个值的下标

我连接到第三方Web服务,该服务返回一个复杂的

JSON对象,该对象仅包含我实际需要的一些信息.

基本上,我只需要“值”中的数组.从该数组中,我只需要“Id”,“Title”和“Status”属性.

我想将这些属性放入名为Project的c#类中.这是我的班级:

public class Project

{

public String Id { get; set; }

public String Title { get; set; }

public String Status { get; set; }

}

我正在尝试使用此代码来读取JSON并执行转换:

using (WebResponse response = request.GetResponse())

{

using (StreamReader reader = new StreamReader(response.GetResponseStream()))

{

var serializer = new JsonSerializer();

var jsonTextReader = new JsonTextReader(reader);

returnValue = serializer.Deserialize(jsonTextReader);

}

}

示例JSON:

{

"odata.metadata":"http://school.edu/Api/1/$metadata#Projects",

"odata.count":"3",

"value":[

{

"odata.id":"http://school.edu/Api/1/Projects('123')",

"RelatedProjects@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('123')/RelatedProjects",

"Tags@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('123')/Tags",

"TimedEvents@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('123')/Categories",

"ep@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('123')/ep",

"#CreateLike":{

"target":"http://school.edu/Api/1/Projects('123')/CreateLike"

},

"#CreateShortcut":{

"target":"http://school.edu/Api/1/Projects('123')/CreateShortcut"

},

"#Play":{

"target":"http://school.edu/Play/123"

},

"#SendInvitation":{

"target":"http://school.edu/Api/1/Projects('123')/SendInvitation"

},

"#CopyProject":{

"target":"http://school.edu/Api/1/Projects('123')/CopyProject"

},

"#AddVideoPodcast":{

"target":"http://school.edu/Api/1/Projects('123')/AddVideoPodcast"

},

"#AddEP":{

"target":"http://school.edu/Api/1/Projects('123')/AddEP"

},

"Id":"123",

"Title":"Test Title 1",

"Status":"Viewable"

},

{

"odata.id":"http://school.edu/Api/1/Projects('456')",

"RelatedProjects@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('456')/RelatedProjects",

"Tags@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('456')/Tags",

"TimedEvents@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('456')/Categories",

"ep@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('456')/ep",

"#CreateLike":{

"target":"http://school.edu/Api/1/Projects('456')/CreateLike"

},

"#CreateShortcut":{

"target":"http://school.edu/Api/1/Projects('456')/CreateShortcut"

},

"#Play":{

"target":"http://school.edu/Play/456"

},

"#SendInvitation":{

"target":"http://school.edu/Api/1/Projects('456')/SendInvitation"

},

"#CopyProject":{

"target":"http://school.edu/Api/1/Projects('456')/CopyProject"

},

"#AddVideoPodcast":{

"target":"http://school.edu/Api/1/Projects('456')/AddVideoPodcast"

},

"#AddEP":{

"target":"http://school.edu/Api/1/Projects('456')/AddEP"

},

"Id":"456",

"Title":"Test Title 2",

"Status":"Viewable"

},

{

"odata.id":"http://school.edu/Api/1/Projects('789')",

"RelatedProjects@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('789')/RelatedProjects",

"Tags@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('789')/Tags",

"TimedEvents@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('789')/Categories",

"ep@odata.navigationLinkUrl":"http://school.edu/Api/1/Projects('789')/ep",

"#CreateLike":{

"target":"http://school.edu/Api/1/Projects('789')/CreateLike"

},

"#CreateShortcut":{

"target":"http://school.edu/Api/1/Projects('789')/CreateShortcut"

},

"#Play":{

"target":"http://school.edu/Play/789"

},

"#SendInvitation":{

"target":"http://school.edu/Api/1/Projects('789')/SendInvitation"

},

"#CopyProject":{

"target":"http://school.edu/Api/1/Projects('789')/CopyProject"

},

"#AddVideoPodcast":{

"target":"http://school.edu/Api/1/Projects('789')/AddVideoPodcast"

},

"#AddEP":{

"target":"http://school.edu/Api/1/Projects('789')/AddEP"

},

"Id":"789",

"Title":"Test Title 3",

"Status":"Viewable"

}

],

"odata.nextLink":"http://school.edu/Api/1/Folders('xyz')/Projects?$skip=10&$top=10"

}

我只是得到一个null对象.但是在调试器中,我可以看到它正在从Web服务中提取所有JSON数据.

如何从JSON获得我需要的东西,构建我的c#对象,并忽略所有其余的东西?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/977791
推荐阅读
相关标签
  

闽ICP备14008679号