cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
ericonline
Community Champion
Community Champion

Parse JSON Help

Hello, 

I'm trying to pull an array out of a JSON response and not having any luck. 
Can someone see what I'm missing?

Trigger: Button

Action1: HTTP Request

Action2: Parse JSON

  • I'm able to access all parameters just fine EXCEPT for the latitude and longitude "locked up" in the geometry/coordinates array:
  • {
      "type": "FeatureCollection",
      "metadata": {
        "generated": 1557358894000,
        "url": "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2019-05-07T00%3a00%3a00.0000000&endtime=5%2f8%2f2019&latitude=39.0422528&longitude=-95.6719104&maxradiuskm=1000&orderby=magnitude-asc",
        "title": "USGS Earthquakes",
        "status": 200,
        "api": "1.8.1",
        "count": 1
      },
      "features": [
        {
          "type": "Feature",
          "properties": {
            "mag": 2.9,
            "place": "16km N of Snyder, Texas",
            "time": 1557260837307,
            "updated": 1557331308692,
            "tz": -360,
            "url": "https://earthquake.usgs.gov/earthquakes/eventpage/us70003i1i",
            "detail": "https://earthquake.usgs.gov/fdsnws/event/1/query?eventid=us70003i1i&format=geojson",
            "felt": 1,
            "cdi": 2.7,
            "mmi": null,
            "alert": null,
            "status": "reviewed",
            "tsunami": 0,
            "sig": 130,
            "net": "us",
            "code": "70003i1i",
            "ids": ",us70003i1i,",
            "sources": ",us,",
            "types": ",dyfi,geoserve,origin,phase-data,",
            "nst": null,
            "dmin": 0.028,
            "rms": 0.48,
            "gap": 36,
            "magType": "mb_lg",
            "type": "earthquake",
            "title": "M 2.9 - 16km N of Snyder, Texas"
          },
          "geometry": {
            "type": "Point",
            "coordinates": [
              -100.9142,
              32.8648,
              1.96
            ]
          },
          "id": "us70003i1i"
        }
      ]
    }
  • See how the latitude and longitude are not labeled in a "key" : "value" pair? 

I've tried a BUNCH of split() expressions and Select Actions to try and coerce them out. The best I can do is a Select Action where I get [ -100.9142, 32.8648, 1.96 ] as a single value. 

Ideally I want:

longitude: -100.9142
latitude: 32.8648
depth: 1.96

Ideas? 

Thank you!

1 ACCEPTED SOLUTION

Accepted Solutions
v-bacao-msft
Community Support
Community Support

Hi @ericonline ,

 

Since coordinates is an array, it seems that we can get the element value by index.

If the element values in coordinate of JSON response are in the order of [longitude, latitude, depth], please refer to the following method to get the element value.

First use Parse JSON action to separate the part containing the coordinates property, and then get the element value by the following expression.

longitude:

items('Apply_to_each')['geometry']['coordinates'][0]

latitude:

items('Apply_to_each')['geometry']['coordinates'][1]

depth:

items('Apply_to_each')['geometry']['coordinates'][2]

Image reference:

12.PNG

Hope it helps.

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

2 REPLIES 2
v-bacao-msft
Community Support
Community Support

Hi @ericonline ,

 

Since coordinates is an array, it seems that we can get the element value by index.

If the element values in coordinate of JSON response are in the order of [longitude, latitude, depth], please refer to the following method to get the element value.

First use Parse JSON action to separate the part containing the coordinates property, and then get the element value by the following expression.

longitude:

items('Apply_to_each')['geometry']['coordinates'][0]

latitude:

items('Apply_to_each')['geometry']['coordinates'][1]

depth:

items('Apply_to_each')['geometry']['coordinates'][2]

Image reference:

12.PNG

Hope it helps.

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

!~Wow @v-bacao-msft~!

 

Thank you. Your solution worked perfectly. Can you point me to documentation where I could learn about how to "..get the element value by index"? 

 

I see you're using [0], [1], [2] to access the index. I'd like to study this type of thing so I can learn more. 

 

Take care

Helpful resources

Announcements
MPA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Welcome Super Users.jpg

Super User Season 2

Congratulations, the new Super User Season 2 for 2021 has started!

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Users online (1,007)