Сразу хочу сказать, что я начинающий разработчик и прошу прощения, если вопрос поставлен не корректно. Нигде не нашел, как обратится к вложенному объекту JSON.
Мне необходимо вытянуть из очень большого JSON файла определенные строки, объединить в объект и собрать в списко объектов. Не выходит написать класс с необходимыми параметрами. Вот небольшая часть JSON:
"result": [
{
"id": 13,
"identity": "",
"way": "reduction",
"proc": "open",
"state": "started",
"title": "Молот Тора",
"description": "",
bla-bla-bla
]
"entityType": "bidding",
"owner": {
"personId": 38,
...
"subjectRole": "OWNER",
"personContractorId": 38,
"contractorId": 38,
"contractorName": "Фьюри Ник Фф",
"contractorAvatarId": 49,
"contractorAvatarUrl": "...",
"coverFileId": 50,
"coverFileUrl": "...",
"contractorType": "PERSON",
"contractorTypeCompany": ""
}
},{
"id": 15,...
Вот в этом месте у меня и возникла проблема. Не уверен, видно ли это из скопированной части JSON, но "result" это корневой объект внутрь которого вложен объект "owner", внутри которого часть нужных мне полей. Для работы с JSON написал вот такой класс:
using Newtonsoft.Json;
using System;
namespace BackgroundTasks
{
[Serializable]
public sealed class Bid
{
[JsonProperty(PropertyName = "entityType")]
public string EntityType { get; set; }
[JsonProperty(PropertyName = "title")]
public string Title { get; set; }
[JsonProperty(PropertyName = "proc")]
public string Process { get; set; }
[JsonProperty(PropertyName = "Id")]
public int Id { get; set; }
[JsonProperty(PropertyName = "owner")]
public object Owner { get; set; }
public Bid() { }
public Bid(string entityType, string title, string process, int id, object owner)
{
EntityType = entityType;
Title = title;
Process = process;
Id = id;
Owner = owner;
}
}
[Serializable]
public sealed class BidOwner
{
[JsonProperty(PropertyName = "contractorName")]
public string ContractorName { get; set; }
[JsonProperty(PropertyName = "contractorAvatarUrl")]
public string LogoUrl { get; set; }
public BidOwner() { }
public BidOwner(string contractorName, string logoUrl)
{
ContractorName = contractorName;
LogoUrl = logoUrl;
}
}
}
Поля из "owner" не тянулись(видно на скрине), когда был только class Bid, в котором были перечислены все поля.
GET запросом я получаю string jsonText и далее:
var json = JObject.Parse(jsonText);
List<JToken> result = json["result"].Children().ToList();
IList<Bid> bidSearchResults = new List<Bid>();
foreach (JToken res in result)
{
Bid searchResult = res.ToObject<Bid>();
bidSearchResults.Add(searchResult);
}
Должно быть так, но с заполненными полями: enter image description here
А получается вот так: enter image description here
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Допустим имеется две базы данных в SQLiteКаким образом изменения в одной, со временем, можно применить в другой?
Есть список задач, каждую задачу нужно ограничить по времениЕсли задача не успевает выполниться, то пусть возвращается какое-то дефолтное...
Нужно реализовать добавление продуктов в категории через диалоговое окно
Есть вот такой кодВопрос: как в Main достать значение heart из ExampleTask()?