簡體   English   中英

將json響應轉換為C#變量

[英]Convert json response to C# variables

如何在控制台應用程序中將返回的JSON值轉換為變量? 我從rest 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解串器,但是很難將其應用於上下文。 任何幫助深表感謝。

如果我理解正確,您想將json轉換為可以在代碼中顯式使用的對象嗎?

您需要首先獲取Newtonsoft.Json nuget軟件包。

您可以使用JsonConvert.DeserializeObject()方法將json字符串反序列化為ac#對象。

您所需要做的就是與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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM