robie okienkowe gui do api i elegancko zapytanie mi zwraca jsona potem robie obiekt:


var data = (JObject)JsonConvert.DeserializeObject(json);


i jak potrzebuje jakiś value to pobieram go sobie przez np.


jakisValue = data["Key"].Value<string>();


no i elegancko, ale kurde nie wiem jak mam wyciągnąc value z klucza który jest w drugim poziomie np:


 json = @”{


                               “”FirstName””:””Aditya””,


                               “”MiddleName””:””Ashok””,


                               “”LastName””:””Somwanshi””,


                               “”Phone””:[“”9004802526″”,””34304235″”],


                               “”Address””:{“”Primary””:””Panvel””, “”Secondary””:””Cloudfronts””}


                     }”


i z tego chciał bym wyciagnać np. secondary address.


#programowanie #csharp #programista15k

Komentarze (6)

JuanPabloSegundo

@unxtres w c# możesz sobie łatwo tego jsona deserializować w klasę i elegancko wyciągać przez linq albo nawet propertki.


z tego co wkleiłeś to klaska by wyglądała mniej więcej tak:


public class Address<br />

{<br />

    public string Primary { get; set; }<br />

    public string Secondary { get; set; }<br />

}<br />

public class Response<br />

{<br />

    public string FirstName { get; set; }<br />

    public string MiddleName { get; set; }<br />

    public string LastName { get; set; }<br />

    public List<string> Phone { get; set; }<br />

    public Address Address { get; set; }<br />

}<br />

I teras sobie elegancko castujesz

var myDeserializedClass = JsonConvert.DeserializeObject<Response>(json);


i potem ładnie wyciągasz

var secondaryAddress = myDeserializedClass.Address.Secondary;


oczywiście jeśli nie zawsze te wszystkie wartości przychodzą to musisz zadbać o nulle i jakieś walidacje ale na start nic lepszego nie znajdziesz

unxtres

@Dissociated @JuanPabloSegundo

Dzięki chłopaki. Właśnie czytałem o tym i ciężko mi było to zrozumieć. Ucze się na bieżąco piszac kod, a nie tylko teoria. Do tego praca i człowiek trochę rozkojarzony. Szkoda ze nie ma czasem kogo zapytać bezpośrednio o jakiś szczegół, było by łatwiej

Krushynka

@JuanPabloSegundo a w js można to zrobić za pomocą lodasha na przykład? Orientujesz się może?

JuanPabloSegundo

@Krushynka w js to nie wiem czy można silnie typowane klasy, no chyba że jakiś typescript

ale na js się nie znam za dużo, ja to dotnetowiec ( ͡~ ͜ʖ ͡°)

Zaloguj się aby komentować