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
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ć