cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Super User
Super User

Parse JSON Assistance

Hello,

When creating Custom Connectors in PowerApps, I can just paste a Postman response Body into the "Sample" area and PowerApps automagically parses out the items I need with the correct labels. 

 

With Flow, this is not the case. Pasting a Response Body from Postman required manual cleanup to pass validation. Now that it passes validation though, I can't tell the parameters apart.

 

Many of them are just labeled "type" due to how Flow parsed the Sample Payload. 

 

How can I get the correct labels for each parameter of the JSON payload?

 

Thank you!

 

Postman response Body:

{
    "type": "FeatureCollection",
    "metadata": {
        "generated": 1557183095000,
        "url": "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2019-04-02&endtime=2019-04-03&latitude=47&longitude=-122&maxradiuskm=300&orderby=magnitude-asc",
        "title": "USGS Earthquakes",
        "status": 200,
        "api": "1.8.1",
        "count": 5
    },
    "features": [
        {
            "type": "Feature",
            "properties": {
                "mag": 0.8,
                "place": "18km NE of Kalama, Washington",
                "time": 1554228490230,
                "updated": 1554233445550,
                "tz": -480,
                "url": "https://earthquake.usgs.gov/earthquakes/eventpage/uw61515642",
                "detail": "https://earthquake.usgs.gov/fdsnws/event/1/query?eventid=uw61515642&format=geojson",
                "felt": null,
                "cdi": null,
                "mmi": null,
                "alert": null,
                "status": "reviewed",
                "tsunami": 0,
                "sig": 10,
                "net": "uw",
                "code": "61515642",
                "ids": ",uw61515642,",
                "sources": ",uw,",
                "types": ",geoserve,origin,phase-data,",
                "nst": 7,
                "dmin": null,
                "rms": 0.21,
                "gap": 237,
                "magType": "ml",
                "type": "earthquake",
                "title": "M 0.8 - 18km NE of Kalama, Washington"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -122.65483333333,
                    46.109666666667,
                    15.96
                ]
            },
            "id": "uw61515642"
        },
        {
            "type": "Feature",
            "properties": {
                "mag": 0.95,
                "place": "4km NNW of Venersborg, Washington",
                "time": 1554248973310,
                "updated": 1554311351470,
                "tz": -480,
                "url": "https://earthquake.usgs.gov/earthquakes/eventpage/uw61515687",
                "detail": "https://earthquake.usgs.gov/fdsnws/event/1/query?eventid=uw61515687&format=geojson",
                "felt": null,
                "cdi": null,
                "mmi": null,
                "alert": null,
                "status": "reviewed",
                "tsunami": 0,
                "sig": 14,
                "net": "uw",
                "code": "61515687",
                "ids": ",uw61515687,",
                "sources": ",uw,",
                "types": ",geoserve,origin,phase-data,",
                "nst": 5,
                "dmin": null,
                "rms": 0.22,
                "gap": 330,
                "magType": "ml",
                "type": "explosion",
                "title": "M 1.0 Explosion - 4km NNW of Venersborg, Washington"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -122.442,
                    45.8165,
                    -1.07
                ]
            },
            "id": "uw61515687"
        },
        {
            "type": "Feature",
            "properties": {
                "mag": 1.04,
                "place": "7km WNW of Federal Way, Washington",
                "time": 1554183431770,
                "updated": 1554407575360,
                "tz": -480,
                "url": "https://earthquake.usgs.gov/earthquakes/eventpage/uw61515602",
                "detail": "https://earthquake.usgs.gov/fdsnws/event/1/query?eventid=uw61515602&format=geojson",
                "felt": null,
                "cdi": null,
                "mmi": null,
                "alert": null,
                "status": "reviewed",
                "tsunami": 0,
                "sig": 17,
                "net": "uw",
                "code": "61515602",
                "ids": ",uw61515602,",
                "sources": ",uw,",
                "types": ",geoserve,origin,phase-data,",
                "nst": 14,
                "dmin": null,
                "rms": 0.13,
                "gap": 107,
                "magType": "ml",
                "type": "earthquake",
                "title": "M 1.0 - 7km WNW of Federal Way, Washington"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -122.39716666667,
                    47.357166666667,
                    17.03
                ]
            },
            "id": "uw61515602"
        },
        {
            "type": "Feature",
            "properties": {
                "mag": 2.06,
                "place": "3km ENE of Granite Falls, Washington",
                "time": 1554229776760,
                "updated": 1554418212281,
                "tz": -480,
                "url": "https://earthquake.usgs.gov/earthquakes/eventpage/uw61515652",
                "detail": "https://earthquake.usgs.gov/fdsnws/event/1/query?eventid=uw61515652&format=geojson",
                "felt": 1,
                "cdi": 2.7,
                "mmi": null,
                "alert": null,
                "status": "reviewed",
                "tsunami": 0,
                "sig": 66,
                "net": "uw",
                "code": "61515652",
                "ids": ",uw61515652,",
                "sources": ",uw,",
                "types": ",dyfi,geoserve,origin,phase-data,",
                "nst": 10,
                "dmin": null,
                "rms": 0.15,
                "gap": 87,
                "magType": "ml",
                "type": "explosion",
                "title": "M 2.1 Explosion - 3km ENE of Granite Falls, Washington"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -121.92733333333,
                    48.095,
                    -0.48
                ]
            },
            "id": "uw61515652"
        },
        {
            "type": "Feature",
            "properties": {
                "mag": 2.68,
                "place": "23km W of Tieton, Washington",
                "time": 1554210002380,
                "updated": 1555258043040,
                "tz": -480,
                "url": "https://earthquake.usgs.gov/earthquakes/eventpage/uw61515622",
                "detail": "https://earthquake.usgs.gov/fdsnws/event/1/query?eventid=uw61515622&format=geojson",
                "felt": 6,
                "cdi": 3.1,
                "mmi": null,
                "alert": null,
                "status": "reviewed",
                "tsunami": 0,
                "sig": 112,
                "net": "uw",
                "code": "61515622",
                "ids": ",uw61515622,us2000k94k,",
                "sources": ",uw,us,",
                "types": ",dyfi,geoserve,origin,phase-data,",
                "nst": 28,
                "dmin": null,
                "rms": 0.28,
                "gap": 78,
                "magType": "ml",
                "type": "earthquake",
                "title": "M 2.7 - 23km W of Tieton, Washington"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -121.0665,
                    46.7035,
                    4.22
                ]
            },
            "id": "uw61515622"
        }
    ],
    "bbox": [
        -122.65483333333,
        45.8165,
        -1.07,
        -121.0665,
        48.095,
        17.03
    ]
}

Result of Sample Payload in Flow (required some cleanup):

{
    "type": "string",
    "properties": {
        "type": {
            "type": "string"
        },
        "metadata": {
            "type": "object",
            "properties": {
                "generated": {
                    "type": "integer"
                },
                "url": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "status": {
                    "type": "integer"
                },
                "api": {
                    "type": "string"
                },
                "count": {
                    "type": "integer"
                }
            }
        },
        "features": {
            "type": "array",
            "items": {
                "type": "string",
                "properties": {
                    "type": {
                        "type": "string"
                    },
                    "properties": {
                        "type": "object",
                        "properties": {
                            "mag": {
                                "type": "number"
                            },
                            "place": {
                                "type": "string"
                            },
                            "time": {
                                "type": "integer"
                            },
                            "updated": {
                                "type": "integer"
                            },
                            "tz": {
                                "type": "integer"
                            },
                            "url": {
                                "type": "string"
                            },
                            "detail": {
                                "type": "string"
                            },
                            "felt": {},
                            "cdi": {},
                            "mmi": {},
                            "alert": {},
                            "status": {
                                "type": "string"
                            },
                            "tsunami": {
                                "type": "integer"
                            },
                            "sig": {
                                "type": "integer"
                            },
                            "net": {
                                "type": "string"
                            },
                            "code": {
                                "type": "string"
                            },
                            "ids": {
                                "type": "string"
                            },
                            "sources": {
                                "type": "string"
                            },
                            "types": {
                                "type": "string"
                            },
                            "nst": {
                                "type": "integer"
                            },
                            "dmin": {},
                            "rms": {
                                "type": "number"
                            },
                            "gap": {
                                "type": "integer"
                            },
                            "magType": {
                                "type": "string"
                            },
                            "type": {
                                "type": "string"
                            },
                            "title": {
                                "type": "string"
                            }
                        }
                    },
                    "geometry": {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string"
                            },
                            "coordinates": {
                                "type": "array",
                                "items": {
                                    "type": "number"
                                }
                            }
                        }
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "properties",
                    "geometry",
                    "id"
                ]
            }
        },
        "bbox": {
            "type": "array",
            "items": {
                "type": "number"
            }
        }
    }
}

Dynamic Content showing "type" duplication:

image.png

1 ACCEPTED SOLUTION

Accepted Solutions
Super User
Super User

Re: Parse JSON Assistance

@mosmas (aka "Flow Poppa", aka "Flow Maestro", aka "Flow Magic", aka "Don't Call Me On The Weekend" 🙂 )comes through with the fix!!

Key 1:  

  • Read the failure message and fix the schema!
  • "features.properties.gap" in this case is the path in the nested JSON where the error is occurring
  • image.png
  • One caveat that @mosmas  brought up is when a value can have BOTH a number (or string) AND a NULL. 
    • It needs special treatment: ["integer", "null"]
    • Example:
    • image.png

Key 2: 

  • Once the schema passes validation, use the Select Action to create a sweet little array of each object

BONUS!!:

  • You can search your Parse JSON sample schema with CTRL+F
  • image.png

Thanks so much @mosmas !!

--------------

@KickingApps , this is a good one to play with!

View solution in original post

2 REPLIES 2
Super User
Super User

Re: Parse JSON Assistance

@mosmas (aka "Flow Poppa", aka "Flow Maestro", aka "Flow Magic", aka "Don't Call Me On The Weekend" 🙂 )comes through with the fix!!

Key 1:  

  • Read the failure message and fix the schema!
  • "features.properties.gap" in this case is the path in the nested JSON where the error is occurring
  • image.png
  • One caveat that @mosmas  brought up is when a value can have BOTH a number (or string) AND a NULL. 
    • It needs special treatment: ["integer", "null"]
    • Example:
    • image.png

Key 2: 

  • Once the schema passes validation, use the Select Action to create a sweet little array of each object

BONUS!!:

  • You can search your Parse JSON sample schema with CTRL+F
  • image.png

Thanks so much @mosmas !!

--------------

@KickingApps , this is a good one to play with!

View solution in original post

Super User
Super User

Re: Parse JSON Assistance

BONUS BONUS!!

  • Did you know you can change the names of parameters returned from an HTTP request as part of parsing JSON!
  • WOW
  • Example
    • There are two keys named "url" in the schema 
    • image.png
    • You can rename them IN THE SCHEMA to differentiate them!
    • image.png
    • This is crazy powerful!!

Again, all praises go to @mosmas !! Excellent work and thanks for sharing the expertise.

Helpful resources

Announcements
firstImage

New & Improved Power Automate Community Cookbook

We've updated and improved the layout and uploading format of the Power Automate Cookbook!

thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

firstImage

Incoming: New and improved badges!

We've given our badges an overhaul and also added some brand new ones!

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

sixthImage

Power Platform World Tour

Find out where you can attend!

seventhimage

Webinars & Video Gallery

Watch & learn from the Power Automate Community Video Gallery!

Top Kudoed Authors (Last 30 Days)
Users online (5,511)