Я использую API для получения всех объявлений о вакансиях от определенной организации, данные JSON, которые я получаю, очень велики, и я хотел бы использовать эти данные в Go, однако у меня возникают проблемы с разбивкой по структурам, поэтому я могу их использоватьв дальнейшем. Это может быть очень простое решение, которое для меня слепое, потому что у меня эта проблема вызывает головную больКлюч API в коде является общедоступным, поэтому нет проблем с совместным использованием его со Stackoverflow.
Код:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
)
type JsonData struct {
Content JsonContent `json:"content"`
TotalElements int `json:"totalElements"`
PageNumber int `json:"pageNumber"`
PageSize int `json:"pageSize"`
TotalPages int `json:"totalPages"`
First bool `json:"first"`
Last bool `json:"last"`
Sort string `json:"sort"`
}
type JsonContent struct {
Uuid string `json:"uuid"`
Published string `json:"published"`
Expires string `json:"expires"`
Updated string `json:"updated"`
WorkLoc WorkLocations `json:"workLocations"`
Title string `json:"title"`
Description string `json:"description"`
SourceUrl string `json:"sourceurl"`
Source string `json:"source"`
ApplicationDue string `json:"applicationDue"`
OccupationCat OccupationCategories `json:"occupationCategories"`
JobTitle string `json:"jobtitle"`
Link string `json:"link"`
Employ Employer `json:"employer"`
EngagementType string `json:"engagementtype"`
Extent string `json:"extent"`
StartTime string `json:"starttime"`
PositionCount interface{} `json:"positioncount"`
Sector string `json:"sector"`
}
type WorkLocations struct {
Country string `json:"country"`
Address string `json:"address"`
City string `json:"city"`
PostalCode string `json:"postalCode"`
County string `json:"county"`
Municipal string `json:"municipal"`
}
type OccupationCategories struct {
Level1 string `json:"level1"`
Level2 string `json:"level2"`
}
type Employer struct {
Name string `json:"name"`
Orgnr string `json:"orgnr"`
Description string `json:"description"`
Homepage interface{} `json:"homepage"`
}
func main() {
var datas JsonData
url := "https://arbeidsplassen.nav.no/public-feed/api/v1/ads?page=1&size=5000&published=%2A&county=Oslo"
// Create a Bearer string by appending string access token
var bearer = "Bearer " + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdWJsaWMudG9rZW4udjFAbmF2Lm5vIiwiYXVkIjoiZmVlZC1hcGktdjEiLCJpc3MiOiJuYXYubm8iLCJpYXQiOjE1NTc0NzM0MjJ9.jNGlLUF9HxoHo5JrQNMkweLj_91bgk97ZebLdfx3_UQ"
// Create a new request using http
req, err := http.NewRequest("GET", url, nil)
// add authorization header to the req
req.Header.Add("Authorization", bearer)
// Send req using http Client
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
err = json.Unmarshal(body, &datas)
if err != nil {
log.Fatal(err)
}
// fmt.Println(datas.TotalPages)
}
Ошибка:
2019/12/11 09:52:35 json: cannot unmarshal array into Go struct field JsonData.content of type main.JsonContent
пример одного 'uuid ':
{"content":[{"uuid":"e2b6dcd2-434e-479d-a9bc-12d1e5c54a92","published":"2019-12-10T12:05:46.613949Z","expires":"2020-01-17T21:59:00Z","updated":"2019-12-10T12:05:46.676935Z","workLocations":[{"country":"NORGE","address":"Filipstad Brygge 2","city":"OSLO","postalCode":"0252","county":"OSLO","municipal":"OSLO"}],"title":"Business Controller til analyse- og prosjektarbeid","description":"<p>For vår kunde søker vi en analytisk person, som har god system- og forretningsforståelse. Dette er et engasjement med oppstart i desember/januar, med varighet på 10-14 måneder.</p>\n<p>Som Business Controller i denne rollen vil man jobbe variert. Den rette kandidaten vil arbeide tett sammen med leder for økonomiavdelingen og opp mot andre avdelinger i selskapet. Arbeidet vil innebære analyser, rapportering, budsjettering og prosjektarbeid. Dette kan også innebære arbeid innen M&A og med lønnsomhets- og kostnadsanalyser. Videre vil det være oppfølging av nøkkeltallsinformasjon, månedlig rapportering og budsjettarbeid.</p>\n<p>Vi ser etter deg som har jobbet fra 1-3 år i tilsvarende stilling og/eller bakgrunn fra revisjon. Videre har du master grad i finans/økonomi/revisjon eller tilsvarende.</p>\n<p>Vi kan tilby en spennende mulighet hos vår kunde, som har et godt arbeidsmiljø og vet å verdsette dyktige medarbeidere.</p>\n<p>Virker dette interessant ber vi deg søke via www.financepeople.no. Ved spørsmål kan du kontakte FinancePeople ved Kristoffer Skogsrud Bugge på telefon +47 91 17 17 29 eller på mail kristoffer@financepeople.no</p>\n","sourceurl":"https://www.finn.no/164952298","source":"FINN","applicationDue":"Vi behandler søknader fortløpende","occupationCategories":[{"level1":"Kontor og økonomi","level2":"Bank finans forsikring"}],"jobtitle":"Business Controller","link":"https://arbeidsplassen.nav.no/stillinger/stilling/e2b6dcd2-434e-479d-a9bc-12d1e5c54a92","employer":{"name":"For kunde","orgnr":"997058682","description":"<p>FinancePeople AS er et spesialisert rekrutterings- og konsulentselskap innenfor økonomi, regnskap og finans. Våre rådgivere er økonomer med relevant erfaring innenfor våre fokusområder. Gjennom våre prosesser vektlegger vi høy kvalitet og verdiskaping - både for våre kunder og kandidater. For mer informasjon, se vår hjemmeside www.financepeople.no.</p>\n","homepage":"http://www.financepeople.no"},"engagementtype":"Engasjement","extent":"Heltid","starttime":"Desember 2019","positioncount":null,"sector":"Privat"},{"uuid":"968cbdaf-6bad-4b0e-8e37-8fdec9a967cb","published":"2019-12-10T12:04:42.861718Z","expires":"2019-12-21T23:00:00Z","updated":"2019-12-10T12:04:43.359474Z","workLocations":[{"country":"NORGE","address":null,"city":"OSLO","postalCode":"0161","county":"OSLO","municipal":"OSLO"}],"title":"Er du sykepleier med erfaring fra legevakt eller akuttmottak?","description":"<p>Da er du den vi søker til legevakt i Akershus.<br />\nSnarlig tiltredelse i 3-delt turnus. Du må ha erfaring fra legevakt eller akuttmottak, lang erfaring fra sykehus kan evt kompensere for dette.</p>\n<p>Du får sjansen til å jobbe på et spennende arbeidssted og til å få brukt din kompetanse, samtidig som du utvikler deg videre og tilegner deg relevant erfaring.</p>\n<p>Ved å jobbe gjennom Randstad care får du mulighet til å ha en fleksibel jobb med gode betingelser og et trygt og lovregulert arbeidsforhold.</p>\n<p><strong>Kvalifikasjoner:</strong></p>\n<p>Norsk autorisasjon som sykepleier\nEvne til å jobbe selvstendig og samtidig ha gode samarbeidsevner.</p>\n<p>Erfaring fra legevakt eller akuttmottak (lang sykehuserfaring kan kompensere for dette)</p>\n<p>Gyldig politiattest</p>\n<p>Snakker et skandinavisk språk</p>\n<p><strong>Vi tilbyr:</strong></p>\n<p>En fast kontaktperson som følger deg gjennom oppdraget.</p>\n<p>Vi gir lønn over tariff. Du vil få 12 % feriepenger og selvsagt alle tillegg for ubekvem arbeidstid som du har krav på, men i tillegg gir vi ekstra 100 % overtid etter 35,5t.</p>\n<p>Vi dekker bolig og reiseutgifter til pendlerbolig om du bor et stykke unna</p>\n<p>Vi har gode pensjons- og forsikringsordninger.</p>\n<p>Hos blir du ivaretatt slik du bør, og vi strekker oss langt for å fylle dine ønsker.</p>\n<p><strong>Ønsker du mer informasjon om jobbmuligheter hos oss? Ta kontakt med Pia Eyde +47 99 52 01 36 eller søk på stillingen nå ved å sende CV til care@randstad.no.</strong></p>\n","sourceurl":"https://www.finn.no/165150463","source":"FINN","applicationDue":"22.12.2019","occupationCategories":[{"level1":"Helse og sosial","level2":"Sykepleier"}],"jobtitle":"Sykepleier","link":"https://arbeidsplassen.nav.no/stillinger/stilling/968cbdaf-6bad-4b0e-8e37-8fdec9a967cb","employer":{"name":"Randstad care","orgnr":"980567583","description":"<p>Randstad Care AS er et av de største vikarbyråene for helsepersonell i Norden. Vi formidler sykepleiere til alle offentlige sykehus i Norge gjennom samarbeidsavtaler med de fire Helseforetakene. I tillegg har vi oppdrag for ulike kommuner og private helseaktører rundt om i landet. Som del av den nordiske Randstadorganisasjonen, formidler vi også oppdrag i Sverige. Med engasjement og lydhørhet ønsker vi å bidra med å finne og utvikle bemanningsløsninger innen vår bransje.</p>\n","homepage":null},"engagementtype":"Vikariat","extent":"Heltid","starttime":"Snarest","positioncount":"2","sector":"Privat"},{"uuid":"b28d365c-942b-4267-a3ae-048438a1c0fd","published":"2019-12-10T12:02:54.46225Z","expires":"2019-12-17T23:00:00Z","updated":"2019-12-10T12:02:54.545309Z","workLocations":[{"country":"NORGE","address":"Drammensveien 60","city":"OSLO","postalCode":"0271","county":"OSLO","municipal":"OSLO"}],"title":"Veileder/sosialkonsulent","description":"<p>Org. nr: - Stillingsident: 4166085237 Presentasjon av stillingen:</p>\n<p>Oppfølging, veiledning og saksbehandling</p>\n<p>(Vikariatet inngår i helseavklaringsprosjektet ved kontoret)</p>\n<h3>Arbeidsoppgaver</h3>\n<p>Arbeidsrettet oppfølging og avklaring, bruke tiltak og virkemidler</p>\n<p>Saksbehandle søknader om sosialhjelp og klager</p>\n<p>Gi råd og veiledning etter lov om sosiale tjenester i NAV</p>\n<p>Følge opp egen brukerportefølje</p>\n<p>Samarbeide med kollegaer, leger/behandlere, tiltaksarrangører, andre tjenester i bydel, m.fl.</p>\n<p>Noe arbeid i vaktordning</p>\n<p>Være god representant for NAV Frogner</p>\n<p>Gi brukere god service</p>\n<h3>Kvalifikasjoner</h3>\n<p>Bachelor i sosialt arbeid (minimum)</p>\n<p>Erfaring med tilsvarende oppgaver fra NAV-kontor gjennom lengre tid</p>\n<p>Dokumenterte resultater fra tidligere arbeid</p>\n<p>Gode ferdigheter i relevante fagsystemer</p>\n<p>Sterk i både muntlig og skriftlig kommunikasjon</p>\n<p>God forståelse for offentlig forvaltning</p>\n<p>Personlig egnethet</p>\n<h3>Personlige egenskaper</h3>\n<p>Du er pågående og fleksibel, litt utålmodig, men utholdende. God med ulike mennesker, liker samtaler og samarbeid med andre. Du har ryddighet i eget arbeid, og er en systematiker med rom også for dine kollegaer og ditt arbeidsmiljø. Du ser etter løsninger, er god på vårt samfunnsoppdrag og våre oppgaver, men tør å reflektere selvstendig og å være kritisk.</p>\n<h3>Vi tilbyr</h3>\n<ul><li>\n<p>Spennende og krevende arbeidsdager i et godt og engasjert miljø</p>\n<p>Gode lokaler med treningsmuligheter</p>\n</li><li>\n<p>God pensjonsordning</p>\n<p>Lønnsplassering i Oslo kommune lønnstrinn 34 - 43 (kr. 479 600 - 561 600) avhengig av ansiennitet</p>\n<p>Faglig og personlig utvikling</p>\n</li><li></li><li></li></ul>\n<h3>Kontaktinformasjon</h3>\n<p>Geir Olav Maribo, 21802180</p>\n<h3>Arbeidssted</h3>\n<p>Drammensveien 60<br />\n0271 OSLO</p>\n<p>Søk på stillingen:<a href=\"https://candidate.webcruiter.com/cv?advertid=4166085237&language=nb&link_source_id=17\" rel=\"nofollow\">Klikk her</a></p>\n<h3>Nøkkelinformasjon:</h3>\n<p>Arbeidsgiver:Oslo kommune</p>\n<p>Referansenr.:4166085237<br />\nStillingsprosent: 100%<br />\nFast<br />\nStartdato: 02.01.2020<br />\nSøknadsfrist: 18.12.2019</p>\n","sourceurl":null,"source":"XML_STILLING","applicationDue":"2019-12-18T00:00","occupationCategories":[{"level1":"Utdanning","level2":"SFO, barne- og fritidsleder"}],"jobtitle":null,"link":"https://arbeidsplassen.nav.no/stillinger/stilling/b28d365c-942b-4267-a3ae-048438a1c0fd","employer":{"name":"Avdeling Oppfølging 1, Oslo kommune, Bydel Frogner","orgnr":"974589230","description":"<p>Bydel Frogner er en sentrumsbydel vest i Oslo med urbane kvaliteter og naturområder som Bygdøy og Frognerparken. Bydelen grenser til bydelene Ullern, Vestre Aker, Nordre Aker og St. Hanshaugen, samt Oslofjorden og sentrum.</p>\n<p>Bydel Frogner skal tilby sine rett i underkant av 60 000 innbyggere gode og tilgjengelige tjenester. Samtidig skal bydelen være en offensiv pådriver i samfunns- og infrastrukturutviklingen, legge til rette for et aktivt lokalengasjement og sikre gode urbane kvaliteter. Tjenestene våre har fokus på forebyggende arbeid og tidlig intervensjon, kvalitet og forutsigbarhet , gjennom god og tydelig kommunikasjon.</p>\n<p>For mer informasjon om oss, gå inn på Oslo kommunes nettside og Bydel Frogner se <a href=\"http://www.bydel-frogner.oslo.kommune.no/\" rel=\"nofollow\">www.bydel-frogner.oslo.kommune.no</a> . Vi er også til stede på Facebook og Instagram</p>\n<p>Arbeidsplassene i Oslo kommune skal preges av mangfold, og våre ansatte skal gjenspeile byens befolkning. Vi oppfordrer alle som er kvalifisert til å søke jobb hos oss uansett alder, funksjonsevne, kjønn, seksuell orientering, religion eller etnisk bakgrunn. Oslo kommune legger vekt på å tilrettelegge arbeidsforholdene dersom du har behov for det.</p>\n","homepage":null},"engagementtype":"Vikariat","extent":"Heltid","starttime":"2020-01-02T00:00","positioncount":"2","sector":"Offentlig"}