Json results mergen op basis van gemeenschappelijke parameter

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dries dk

Dries dk

30/10/2014 14:39:40
Quote Anchor link
Hey, ik hoop dat iemand me kan helpen.
Ik heb een php file die communiceert met de issuu.com API om daar de lijst van laatste publicaties op te halen en deze (json) in een cache file te schijven.
Dan heb ik een andere file die die gegevens gebruikt uit de cache file, maar dat is nu niet zo belangrijk.

Dit is de file: Gist
Alles werkt perfect, ik krijg een json file waar een hele boel toffe info inzit die ik kan gebruiken.
Ik gebruik de actie: "issuu.documents.list" en dat geeft mij inderdaad de mooie lijst die ik kan gebruiken later.
Ik krijg ook een belangrijk veld terug als response: "documentId"

Alleen... Ik heb nog iets nodig, het veld "dataConfigId", en dat veld zit niet in de response.
Voor dat veld heb ik een andere actie nodig, namelijk 'issuu.document_embeds.list'.
Deze API kan mij wel dat veld terug geven, maar dan weer niet de andere velden die ik nodig heb.

één veld dat ik gemeenschappelijk terug krijg van beide api calls is: "documentId"

Nu zoek ik een mooie manier om 2 API calls te doen, met de verschillende acties en diegene waar "documentId" hetzelfde is, te mergen, zodat ik 1 json array krijg waar alle info in zit die ik wil (dus de velden van de eerste call + het veld "dataConfigId" dat ik uit de tweede call haal.
Het veld "documentId" dat ik terug krijg kan ik als requestparameter gebruiken voor de 2e call, deze accepteert dat veld.

Dit moet dan mooi in één array geschreven worden in mijn json cache file, zodat ik alles er uit kan halen dat ik nodig heb.

Sorry als het wat warrig klinkt, ik hoop dat iemand me kan helpen.
Dankje bij voorbaat.
 
PHP hulp

PHP hulp

26/04/2024 05:23:53
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

30/10/2014 21:55:58
Quote Anchor link
Het klinkt niet warrig, maar je geeft onvoldoende informatie. Hoe zien beide responses eruit?
 
Dries dk

Dries dk

31/10/2014 08:55:11
Quote Anchor link
Natuulijk, sorry.
Dit is de eerste response die me alles geeft:
Quote:
{
"rsp": {
"_content": {
"result": {
"totalCount": 1,
"startIndex": 0,
"pageSize": 30,
"more": false,
"_content": [
{
"document": {
"username": "myusername",
"name": "issuudocumentname",
"documentId": "090406192910-c3cd8131d29a4d81b68d582ca90d661e",
"uploadTimestamp": "2009-04-06T19:29:10.000Z",
"created": "2009-04-06T19:29:10.000Z",
"revisionId": "090406192910",
"publicationId": "c3cd8131d29a4d81b68d582ca90d661e",
"title": "My nice Title",
"access": "public",
"state": "A",
"errorCode": 0,
"preview": false,
"reviewed": false,
"category": "004000",
"type": "003000",
"orgDocType": "pdf",
"orgDocName": "mydoc.pdf",
"downloadable": true,
"origin": "singleupload",
"language": "en",
"rating": 0,
"ratingsAllowed": false,
"ratingDist": "0|0|0|0|0",
"likes": 0,
"commentsAllowed": true,
"showDetectedLinks": false,
"pageCount": 8,
"dcla": "3|||||||0|0",
"ep": 1238976000,
"publicationCreationTime": "2009-04-06T19:29:10.000Z",
"publishDate": "2009-04-06T00:00:00.000Z",
"description": "The cool description I used in my catalog",
"coverWidth": 595,
"coverHeight": 841
}
}
]
}
},
"stat": "ok"
}
}

De 2e call die ik kan doen geeft me andere informatie, waarvan ik 1 veld nodig heb 'dataConfigId'.
Volgende is de response als ik de 2e call doe.
Quote:
{
"rsp": {
"_content": {
"result": {
"totalCount": 1,
"startIndex": 0,
"pageSize": 30,
"more": false,
"_content": [
{
"documentEmbed": {
"id": 5884744,
"dataConfigId": "1147495/5884744",
"documentId": "090406192910-c3cd8131d29a4d81b68d582ca90d661e",
"readerStartPage": 1,
"width": 400,
"height": 300,
"created": "2013-12-04T21:16:22.000Z"
}
}
]
}
},
"stat": "ok"
}
}


Zoals je kan zien gaat het om hetzelfde document vermits het 'documentId' het zelfde is.
Ik zou het script willen laten cachen naar 1 json array waar het dataConfigId gewoon bij de informatie van de eerste call komt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.