将json响应转换为C#变量

时间:2018-05-29 10:47:56

标签: c# json sharepoint console-application

如何将返回的JSON值转换为我的控制台应用程序中的变量?我从休息api调用中获得了多个公司(750+)的JSON响应,并将其写入控制台应用程序,如下所示:

"companies": [
    {
        "guid": "81eb95d6-d89e-4e93-aad0-eff89a450fcf",
        "name": "Example Company 1",
        "rating": 770,
        "rating_date": "2018-05-27"
          },
    {
        "guid": "81eb95d6-d89e-4e93-aad0-eff89a450fcf",
        "name": "Example Company 2",
        "rating": 810,
        "rating_date": "2018-05-27"
    },
    {
        "guid": "81eb95d6-d89e-4e93-aad0-eff89a450fcf",
        "name": "Example Company 3",          
        "rating": 760,
        "rating_date": "2018-05-27"
    },`

使用SharePoint客户端然后我希望将这些公司值作为项目上传到共享点列表中。

    {
        ClientContext context = new  ClientContext("http://exampleSharepoint/List");

        List companiesList = context.Web.Lists.GetByTitle("Companies");

        ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
        ListItem newItem = companiesList.AddItem(itemCreateInfo);
        newItem["Title"] = CompanyTitle;
        newItem["guid"] = Guid;
        newItem["Rating"] = Rating;
        newItem["Rating Date"] = RatingDate;
        newItem.Update();

        context.ExecuteQuery();

    }

我已经看过json反序列化器,但很难将它应用到我的上下文中。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你想将json转换为一个对象,然后你可以在代码中明确地使用它吗?

您需要先获取Newtonsoft.Json nuget包。

您可以使用JsonConvert.DeserializeObject()方法将json字符串反序列化为c#对象。

您需要的只是与json匹配的相应c#对象。在你的情况下,你需要像:

public class Company
{
    [JsonProperty(PropertyName = "guid")]
    public Guid Id { get; set; }

    [JsonProperty(PropertyName = "name")]
    public string Name { get; set; }

    [JsonProperty(PropertyName = "rating")]
    public int Rating { get; set; }

    [JsonProperty(PropertyName = "rating_date")]
    public DateTime Rating_date { get; set; }
 }

您可以直接从Json反序列化到此对象的列表:

List<Company> companies = JsonConvert.DeserializeObject<List<Company>>(JsonString);