Kako da izvučem ovu informaciju iz dynamic objekta ?

Kako da izvučem ovu informaciju iz dynamic objekta ?

offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12392

Ukratko : Povučem JSON preko MediaWiki API-a i "bacim" ga u dynamic object.
Iz tog objekta treba da povučem informacije iz Infoboxa nekog Wikipedia članka.

Problem je što je struktura slična ovoj :

query -> pages[] -> page -> revisions[] -> rev -> info koji meni treba

Ako znam kako se stranica zove mogu ovako da dođem do informacije :

obj.query.pages['23123123'].revisions[0]["*"]

Problem nastaje kad promenim link i promeni se page name.
Ne mogu da koristim samo indeks a svi načini da dođem do naziva prvog elementa, na koje sam naišao, ne rade sa dynamic objektima.

Probajte ovaj sample u .NET-u :

WebRequest request = WebRequest.Create("https://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=Titanfall&rvsection=0");             WebResponse response = request.GetResponse();             Stream data = response.GetResponseStream();             string jsonWikiResponse = String.Empty;             using (StreamReader sr = new StreamReader(data))             {                 jsonWikiResponse = sr.ReadToEnd();             }                       dynamic response3 = Newtonsoft.Json.Linq.JObject.Parse(jsonWikiResponse);             dynamic ff = response3.query.pages["39596663"].revisions[0];             ff = ff["*"];
Treba vam JSON.net paket.

Ima li neko pojma kako da napišem kod koji će da radi za bilo koju datu stranu ?

Dakle treba da nađem pageID nekako ili da dođem do ovih informacija koje mi trebaju na neki drugi način.

Interesuju me informacije samo iz InfoBox sekcije (npr. developer, publisher, release date).

Ziveli



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Nemoj koristiti dynamic. Koristi interfejse koje Parse vraća. Npr:
IEnumerable<KeyValuePair<string, JToken>> response3 = Newtonsoft.Json.Linq.JObject.Parse(jsonWikiResponse); IEnumerable<JToken> query = response3.Single(e => e.Key == "query").Value; ...



offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12392

Hvala Srki, iako nije previše olakšalo situaciju, pomoglo mi je da na kraju dođem do stringa koji mi treba.

Nažalost string je u formatu koji Wiki prepoznaje, pa sada pišem parser koji čupa portebne informacije iz tog haosa.

Ziveli

Ko je trenutno na forumu
 

Ukupno su 1021 korisnika na forumu :: 24 registrovanih, 2 sakrivenih i 995 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Rade, amstel, Bobrock1, Botovac, darkangel, Futog 74, ILGromovnik, Karla, Kriglord, krkalon, Krvava Devetka, LUDI, m0nstrum_, Mixelotti, mkukoleca, Nemanja.M, paja69, Parker, pein, powSrb, sabros, Shilok, slonic_tonic, sovanova95