play objects for examples array iteration jq

iteration - objects - Recorriendo una matriz con jq para JSON(en la línea de comando)



jq play (2)

La herramienta de línea de comandos jq escribe en STDOUT y / o STDERR. Si desea escribir la información de .AssetId en STDOUT, una posibilidad sería la siguiente:

jq -r ".[] | .AssetId" input.json

Salida:

14462955 114385498 29715011 98253651

Un conjuro más robusto sería:. .[] | .AssetId? .[] | .AssetId? pero su elección dependerá de lo que desee si no hay una clave llamada "AssetId".

Tengo una matriz:

[ { "AssetId": 14462955, "Name": "Cultural Item", "Description": "It/u0027s... you know... an item. People love items!!!", "AbsoluteUrl": "http://www.roblox.com/Cultural-Item-item?id=14462955", "PriceInRobux": "300", "PriceInTickets": "", "Updated": "3 years ago", "Favorited": "370 times", "Sales": "55", "Remaining": "", "Creator": "ROBLOX", "CreatorAbsoluteUrl": "http://www.roblox.com/users/1/profile", "PrivateSales": "3 Private Sellers", "PriceView": 1, "BestPrice": "666,666,666", "ContentRatingTypeID": 0, "IsServerSideThumbnailLookupInCatalogEnabled": true, "IsLargeItem": false, "IsThumbnailFinal": true, "IsThumbnailUnapproved": false, "ThumbnailUrl": "http://t3.rbxcdn.com/cfbab57cabc6090d078c5f7af403caaa", "BcOverlayUrl": null, "LimitedOverlayUrl": "http://images.rbxcdn.com/793dc1fd7562307165231ca2b960b19a.png", "DeadlineOverlayUrl": null, "LimitedAltText": "Limited", "NewOverlayUrl": null, "SaleOverlayUrl": null, "IosOverlayUrl": null, "XboxOverlayUrl": null, "IsTransparentBackground": false, "AssetTypeID": 8, "CreatorID": 1, "CreatedDate": "//Date(1250206710313)//", "UpdatedDate": "//Date(1340756728887)//", "IsForSale": true, "IsPublicDomain": false, "IsLimited": true, "IsLimitedUnique": false, "MinimumMembershipLevel": 0 }, { "AssetId": 114385498, "Name": "Redspybot", "Description": "How could something so conspicuous be a spy? Beats me! This item was awarded to users who redeemed a ROBLOX card from F.Y.E. in May 2013.", "AbsoluteUrl": "http://www.roblox.com/Redspybot-item?id=114385498", "PriceInRobux": "", "PriceInTickets": "", "Updated": "2 years ago", "Favorited": "218 times", "Sales": "0", "Remaining": "", "Creator": "ROBLOX", "CreatorAbsoluteUrl": "http://www.roblox.com/users/1/profile", "PrivateSales": "2 Private Sellers", "PriceView": 1, "BestPrice": "862,133,799", "ContentRatingTypeID": 0, "IsServerSideThumbnailLookupInCatalogEnabled": true, "IsLargeItem": false, "IsThumbnailFinal": true, "IsThumbnailUnapproved": false, "ThumbnailUrl": "http://t3.rbxcdn.com/173f5636efac35199e40740b3839b3d3", "BcOverlayUrl": null, "LimitedOverlayUrl": "http://images.rbxcdn.com/793dc1fd7562307165231ca2b960b19a.png", "DeadlineOverlayUrl": null, "LimitedAltText": "Limited", "NewOverlayUrl": null, "SaleOverlayUrl": null, "IosOverlayUrl": null, "XboxOverlayUrl": null, "IsTransparentBackground": false, "AssetTypeID": 8, "CreatorID": 1, "CreatedDate": "//Date(1367270100170)//", "UpdatedDate": "//Date(1370113730937)//", "IsForSale": false, "IsPublicDomain": false, "IsLimited": true, "IsLimitedUnique": false, "MinimumMembershipLevel": 0 }, { "AssetId": 29715011, "Name": "American Cowboy", "Description": "...or Cowgirl! You know how to rope in some lookieloos to your America place. Yee haw! Rating prize for the July 4, 2010 Building Contest.", "AbsoluteUrl": "http://www.roblox.com/American-Cowboy-item?id=29715011", "PriceInRobux": "", "PriceInTickets": "", "Updated": "3 years ago", "Favorited": "507 times", "Sales": "0", "Remaining": "", "Creator": "ROBLOX", "CreatorAbsoluteUrl": "http://www.roblox.com/users/1/profile", "PrivateSales": "3 Private Sellers", "PriceView": 1, "BestPrice": "950,000,000", "ContentRatingTypeID": 0, "IsServerSideThumbnailLookupInCatalogEnabled": true, "IsLargeItem": false, "IsThumbnailFinal": true, "IsThumbnailUnapproved": false, "ThumbnailUrl": "http://t2.rbxcdn.com/972ae5b4376523dcfdfdcd16c1cef90d", "BcOverlayUrl": null, "LimitedOverlayUrl": "http://images.rbxcdn.com/793dc1fd7562307165231ca2b960b19a.png", "DeadlineOverlayUrl": null, "LimitedAltText": "Limited", "NewOverlayUrl": null, "SaleOverlayUrl": null, "IosOverlayUrl": null, "XboxOverlayUrl": null, "IsTransparentBackground": false, "AssetTypeID": 8, "CreatorID": 1, "CreatedDate": "//Date(1277767354190)//", "UpdatedDate": "//Date(1277769099607)//", "IsForSale": false, "IsPublicDomain": false, "IsLimited": true, "IsLimitedUnique": false, "MinimumMembershipLevel": 0 }, { "AssetId": 98253651, "Name": "Mahem/u0026#39;s ROBLOX Tablet", "Description": "Winner: Mahem. ROBLOX will be in touch to redeem this prize. Void if sold, traded, or deleted.", "AbsoluteUrl": "http://www.roblox.com/Mahems-ROBLOX-Tablet-item?id=98253651", "PriceInRobux": "90,000", "PriceInTickets": "", "Updated": "3 years ago", "Favorited": "429 times", "Sales": "1", "Remaining": "0", "Creator": "ROBLOX", "CreatorAbsoluteUrl": "http://www.roblox.com/users/1/profile", "PrivateSales": "1 Private Sellers", "PriceView": 1, "BestPrice": "999,999,999", "ContentRatingTypeID": 0, "IsServerSideThumbnailLookupInCatalogEnabled": true, "IsLargeItem": false, "IsThumbnailFinal": true, "IsThumbnailUnapproved": false, "ThumbnailUrl": "http://t7.rbxcdn.com/1dc64223edd569ea698191c86c124928", "BcOverlayUrl": "http://images.rbxcdn.com/4fc3a98692c7ea4d17207f1630885f68.png", "LimitedOverlayUrl": "http://images.rbxcdn.com/d649b9c54a08dcfa76131d123e7d8acc.png", "DeadlineOverlayUrl": null, "LimitedAltText": "Limited Unique", "NewOverlayUrl": null, "SaleOverlayUrl": null, "IosOverlayUrl": null, "XboxOverlayUrl": null, "IsTransparentBackground": false, "AssetTypeID": 19, "CreatorID": 1, "CreatedDate": "//Date(1353368761747)//", "UpdatedDate": "//Date(1355363144050)//", "IsForSale": true, "IsPublicDomain": false, "IsLimited": false, "IsLimitedUnique": true, "MinimumMembershipLevel": 1 } ]

Me gustaría recorrer cada objeto de esta matriz y seleccionar el valor de cada clave llamada AssetId y AssetId console.log() . ¿Cómo haría esto usando jq para la línea de comandos?


También puedes hacerlo a través de este comando.

jq ".[].AssetId" input.json

Si el conjunto es como el que está en mi caso.

{ "resultCode":0, "resultMsg":"SUCCESS", "uniqueRefNo":"111222333", "list":[ { "cardType":"CREDIT CARD", "isBusinessCard":"N", "memberName":"Bank A", "memberNo":10, "prefixNo":404591 }, { "cardType":"DEBIT CARD", "isBusinessCard":"N", "memberName":"Bank A", "memberNo":10, "prefixNo":407814 }, { "cardType":"CREDIT CARD", "isBusinessCard":"N", "memberName":"Bank A", "memberNo":10, "prefixNo":413226 } ] }

puede obtener el prefixNo con el siguiente comando jq.

jq ".list[].prefixNo" input.json

Para un caso más específico sobre la matriz que itera en jq puede consultar este blogpost