"use-object-dictionary" defaults to true. By default, you will get output like this:
[Expert@DallasSA]# mgmt_cli -f json -r true show access-rulebase uid 8a994dd3-993e-4c0c-92a1-a8630b153f4c limit 1 | jq .
{
"uid": "8a994dd3-993e-4c0c-92a1-a8630b153f4c",
"name": "Network",
"rulebase": [
{
"uid": "9d820cd3-fb7b-44ef-b3e0-399fca6a44a4",
"name": "Sectionless",
"type": "access-rule",
"domain": {...},
"rule-number": 1,
"track": {...},
"source": [
"97aeb369-9aea-11d5-bd16-0090272ccb30"
],
"source-negate": false,
"destination": [
"97aeb369-9aea-11d5-bd16-0090272ccb30"
],
"destination-negate": false,
"service": [
"97aeb40a-9aea-11d5-bd16-0090272ccb30"
],
"service-negate": false,
"service-resource": "",
"vpn": [
"97aeb369-9aea-11d5-bd16-0090272ccb30"
],
"action": "6c488338-8eec-4103-ad21-cd461ac2c472",
"action-settings": {
"enable-identity-captive-portal": false
},
"content": [
"97aeb369-9aea-11d5-bd16-0090272ccb30"
],
"content-negate": false,
"content-direction": "any",
"time": [
"97aeb369-9aea-11d5-bd16-0090272ccb30"
],
"custom-fields": {
"field-1": "",
"field-2": "",
"field-3": ""
},
"meta-info": {...},
"comments": "",
"enabled": true,
"install-on": [
"6c488338-8eec-4103-ad21-cd461ac2c476"
],
"tags": []
}
],
"objects-dictionary": [
{
"uid": "6c488338-8eec-4103-ad21-cd461ac2c472",
"name": "Accept",
"type": "RulebaseAction",
"domain": {...},
"icon": "Actions/actionsAccept",
"color": "none"
},
{
"uid": "97aeb369-9aea-11d5-bd16-0090272ccb30",
"name": "Any",
"type": "CpmiAnyObject",
"domain": {...},
"icon": "General/globalsAny",
"color": "black"
},
{
"uid": "97aeb40a-9aea-11d5-bd16-0090272ccb30",
"name": "echo-request",
"type": "service-icmp",
"domain": {...},
"icon": "Services/ICMPService",
"color": "orchid"
},
{
"uid": "29e53e3d-23bf-48fe-b6b1-d59bd88036f9",
"name": "None",
"type": "Track",
"domain": {...},
"icon": "General/globalsNone",
"color": "none"
},
{
"uid": "6c488338-8eec-4103-ad21-cd461ac2c476",
"name": "Policy Targets",
"type": "Global",
"domain": {...},
"icon": "General/globalsAny",
"color": "none"
}
],
"from": 1,
"to": 1,
"total": 29
}
The "objects-dictionary" key contains a list of all of the objects referenced in the rules covered by the API call. The "details-level" key in the call controls the level of detail of the rule and of these objects. This does have a significant limitation, though: group members are not included. You can resolve group members one at a time, but like you said, that's really slow.
If you can afford to spend the RAM, it's a lot faster to start by calling "/show-objects" over and over to ingest all objects into a local cache. You then pull the rules, ignore the "objects-dictionary" key, and ingest the rule using the objects from your local cache.