Преобразовать ответ json в переменные C # - PullRequest
0 голосов
/ 29 мая 2018

Как преобразовать возвращенные значения JSON в переменные в моем консольном приложении?Я получаю ответ JSON от нескольких компаний (750+) от вызова API api и записываю его в консольное приложение, которое выглядит следующим образом:

"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, я хочу загрузить эти компаниизначения в виде элементов в списке 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 deserializer, но с трудом применяю его в моем контексте.Любая помощь очень ценится.

1 Ответ

0 голосов
/ 29 мая 2018

Если я правильно понимаю, вы хотите преобразовать json в объект, который затем можно явно использовать в коде?

Сначала вам нужно получить пакет nuget для Newtonsoft.Json.

Вы можете использовать метод JsonConvert.DeserializeObject (), чтобы десериализовать строку json в объект ac #.

Все, что вам нужно, - это соответствующий объект c #, соответствующий json.В вашем случае вам нужно что-то вроде:

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);
...