Uses jq.
cat schema.json | \
jq -r '[paths | join(".")] | .[]' | \
grep 'properties\.\w\+$' | \
sed 's/properties\.//g'
Example with this file:
$ cat recalls_api_schema_new.json | jq -r '[paths | join(".")] | .[]' | grep 'properties\.\w\+$' | sed 's/properties\.//g'
RecallID
RecallAgency
RecallNumber
RecallDatetime
Description
URL
Title
ConsumerContact
ConsumerContact.entity
ConsumerContact.type
ConsumerContact.value
ConsumerContact.title
LastPublishDate
Product
Product.Name
Product.Description
Product.Model
Product.Type
Product.CategoryID
Product.NumberOfUnits
Inconjunction
Inconjunction.Country
Image
Image.URL
Injury
Injury.Name
Manufacturer
Manufacturer.Name
Manufacturer.CompanyID
ManufacturerCountry
ManufacturerCountry.Country
ProductUPC
ProductUPC.UPC
Hazard
Hazard.Name
Hazard.HazardTypeID
Remedy
Remedy.Name
Remedy.Options
Retailer
Retailer.Name
Retailer.CompanyID
Importer
Importer.Name
Importer.CompanyID
Distributor
Distributor.Name
Distributor.CompanyID
SeverityCategory
There is likely a cleaner way to do this.