Stavím ROKU aplikaci a jsem formátování json souboru vytáhl z API musí být ve stejném formátu, jako ROKU Přímé Vydavatele krmiva.
To je to, co ROKU čeká...
{
"providerName": "Acme Productions",
"lastUpdated": "2015-11-11T22:21:37+00:00",
"language": "en",
"categories": [
...
],
"playlists": [
...
],
"movies": [
...
],
"liveFeeds": [
...
],
"series": [
...
],
"shortFormVideos": [
...
],
"tvSpecials": [
...
]
}
Používám jq, aby ji přetvořit a mám problém.
Můj současný json soubor je v podstatě jako to a jde dál a dál a dál (já jsem svlékl většinu z toho ven jako klíče jedno, na co se ptám...)
{
"page_info":{
"total_results":1000,
"results_per_page":50
},
"results":[
{
"category":"B-Roll",
"aspect_ratio":"16:9",
"duration":1851,
"hd":true,
"title":"Title",
"id":"video:822667",
"type":"video",
"keywords":"removed",
"credit":"Removed",
"country":"United States",
"city":"",
"hls_url":"file"
},
{
"category":"B-Roll",
"aspect_ratio":"16:9",
"duration":1851,
"hd":true,
"title":"Title",
"id":"video:822667",
"type":"video",
"keywords":"removed",
"credit":"Removed",
"country":"United States",
"city":"",
"hls_url":"file"
},
{
"category":"B-Roll",
"aspect_ratio":"16:9",
"duration":1851,
"hd":true,
"title":"Title",
"id":"video:822667",
"type":"video",
"keywords":"removed",
"credit":"Removed",
"country":"United States",
"city":"",
"hls_url":"file"
}
]}
Tohle je můj jq filtr - .results[] | {"providerName":"CrozTest" } + {"language": "en-us"} + {"lastUpdated": .timestamp} + {"shortFormVideos": [{"title": .title, "thumbnail": .thumbnail, "longDescription": .short_description, "shortDescription": .short_description, "id": .id, "releaseDate": .timestamp, "genres": ["technology"], "tags": [.branch], "content": {"duration": .duration, "dateAdded": .timestamp, "videos": [{url: .hls_url, quality: "HD", videoType: "HLS", dateAdded: .publishdate,}]}}]}
Když jsem se použít to, vrtačky dolů .výsledky[], zobrazí všechno v pořádku, ale odstraňuje čárka mezi objekty a přidává své "poskytovatel jméno, jazyk, aktualizované a shortformvideos" pro každý objekt. Teď musím udržet čárky mezi objekty a zobrazit pouze poskytovatel/jazyk/datum/shortform v horní části souboru jako jsem i nadále manipulovat objektu být ve správném formátu, který ROKU chce.
To je to, co se zobrazí, když jsem běžet můj kód...
{
"providerName": "CrozTest",
"language": "en-us",
"lastUpdated": null,
"shortFormVideos": [
{
"title": "Title",
"thumbnail": null,
"longDescription": null,
"shortDescription": null,
"id": "video:822667",
"releaseDate": null,
"genres": [
"technology"
],
"tags": [
null
],
"content": {
"duration": 1851,
"dateAdded": null,
"videos": [
{
"url": "file",
"quality": "HD",
"videoType": "HLS",
"dateAdded": null
}
]
}
}
]
}
{
"providerName": "CrozTest",
"language": "en-us",
"lastUpdated": null,
"shortFormVideos": [
{
"title": "Title",
"thumbnail": null,
"longDescription": null,
"shortDescription": null,
"id": "video:822667",
"releaseDate": null,
"genres": [
"technology"
],
"tags": [
null
],
"content": {
"duration": 1851,
"dateAdded": null,
"videos": [
{
"url": "file",
"quality": "HD",
"videoType": "HLS",
"dateAdded": null
}
]
}
}
]
}
{
"providerName": "CrozTest",
"language": "en-us",
"lastUpdated": null,
"shortFormVideos": [
{
"title": "Title",
"thumbnail": null,
"longDescription": null,
"shortDescription": null,
"id": "video:822667",
"releaseDate": null,
"genres": [
"technology"
],
"tags": [
null
],
"content": {
"duration": 1851,
"dateAdded": null,
"videos": [
{
"url": "file",
"quality": "HD",
"videoType": "HLS",
"dateAdded": null
}
]
}
}
]
}
Teď jsem právě teď začíná nudle kolem s jq, a to je to, co jsem se snaží dostat...
{
"providerName": "CrozTest",
"language": "en-us",
"lastUpdated": "2021-11-21T19:24:03.750Z",
"shortFormVideos": [
{
"category":"B-Roll",
"aspect_ratio":"16:9",
"duration":1851,
"hd":true,
"title":"Title",
"id":"video:822667",
"type":"video",
"keywords":"removed",
"credit":"Removed",
"country":"United States",
"city":"",
"hls_url":"file",
"id": "video:822412",
"releaseDate": "2021-11-21T18:21:04.353Z",
"genres": [
"technology"
],
"tags": [
"tag"
],
"content": {
"duration": 160,
"dateAdded": "2021-11-21T18:21:04.353Z",
"videos": [
{
"url": "hls_url",
"quality": "HD",
"videoType": "HLS",
"dateAdded": "2021-11-21T18:19:31Z"
}
]
}
},
{
"category":"B-Roll",
"aspect_ratio":"16:9",
"duration":1851,
"hd":true,
"title":"Title",
"id":"video:822667",
"type":"video",
"keywords":"removed",
"credit":"Removed",
"country":"United States",
"city":"",
"hls_url":"file",
"id": "video:822412",
"releaseDate": "2021-11-21T18:21:04.353Z",
"genres": [
"technology"
],
"tags": [
"tag"
],
"content": {
"duration": 160,
"dateAdded": "2021-11-21T18:21:04.353Z",
"videos": [
{
"url": "hls_url",
"quality": "HD",
"videoType": "HLS",
"dateAdded": "2021-11-21T18:19:31Z"
}
]
}
},
{
"category":"B-Roll",
"aspect_ratio":"16:9",
"duration":1851,
"hd":true,
"title":"Title",
"id":"video:822667",
"type":"video",
"keywords":"removed",
"credit":"Removed",
"country":"United States",
"city":"",
"hls_url":"file",
"id": "video:822412",
"releaseDate": "2021-11-21T18:21:04.353Z",
"genres": [
"technology"
],
"tags": [
"tag"
],
"content": {
"duration": 160,
"dateAdded": "2021-11-21T18:21:04.353Z",
"videos": [
{
"url": "hls_url",
"quality": "HD",
"videoType": "HLS",
"dateAdded": "2021-11-21T18:19:31Z"
}
]
}
}
]
}