web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Issues with Parse JSON...
Power Automate
Unanswered

Issues with Parse JSON Schema - Column Names not Showing up in Dynamic Content

(0) ShareShare
ReportReport
Posted on by 12

I'm working on building a Power Automate flow that converts a CSV file into a SharePoint list. I'm using the Parse JSON action and initially generated the schema by copying the output from my Select action.

When I leave the schema as is, the flow gives me an error (see screenshot below). However, the column names appear in the dynamic content—which is exactly what I need.

But when I modify the schema to allow for null values, the flow runs successfully, but the column names no longer show up in the dynamic content.

Has anyone run into this before? Is there a way to keep the column names visible in dynamic content while still handling null values properly? I'm not sure what to adjust next.

 

Here is the error with the schema that does not adjust for null values but I still get the dynamic content : 

 

When I adjust for nulls, the flow works but there is no dynamic content: 

 

 

Categories:
I have the same question (0)
  • Pstork1 Profile Picture
    68,697 Most Valuable Professional on at
    When you adjust to allow the null data type do you also remove those columns from the required list at the end of the schema?  I've adjusted the schema before to allow for null values and never had an issue with using the dynamic content later.  But you do need to remove them from the required list.

    ----------------------------------------------------------------------------------
    If this Post helped you, please click "Does this answer your question" and give it a like to help others in the community find the answer too!

    Paul Papanek Stork, MVP
    Blog: https://www.dontpapanic.com/blog
     
     
  • Suggested answer
    David_MA Profile Picture
    12,966 Super User 2025 Season 2 on at
    When you adjust the scheme for nulls, I believe you need to format it like this:
     
    {
        "type": "object",
        "properties": {
            "odata.metadata": {
                "type": [
                    "string",
                    "null"
                ]
            },
            "value": {
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                        "odata.type": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "odata.id": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "odata.editLink": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "Title": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "Prio": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        },
                        "IPAddress": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    "required": [
                        "odata.type",
                        "odata.id",
                        "odata.editLink",
                        "Title",
                        "Prio",
                        "IPAddress"
                    ]
                }
            }
        }
    }
    Note how you have the type values within { } rather than [ ] as in my code. This format works for me.
  • AR-15041655-0 Profile Picture
    12 on at
    @Pstork1 I did that, and I am still running into the same issue: 
     
     
    Here is the whole thing: 
     
    {
        "type": "array",
        "items": {
            "type": "object",
            "properties": {
                "First Name": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Last Name": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Email": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "External Title": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Business Unit Name": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Market Name": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Location Name": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Language\r": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            }
        }
    }
  • Pstork1 Profile Picture
    68,697 Most Valuable Professional on at
    What type of action are you trying to input the dynamic content into?  The best test would be a Compose because that doesn't do any filtering on data types. It may be that its filtering out the content because its not guaranteed to be a string data type.

    ----------------------------------------------------------------------------------
    If this Post helped you, please click "Does this answer your question" and give it a like to help others in the community find the answer too!

    Paul Papanek Stork, MVP
    Blog: https://www.dontpapanic.com/blog
     
  • David_MA Profile Picture
    12,966 Super User 2025 Season 2 on at
    I think this may be the issue:
     
                "Language\r": {
                    "type": [
                        "string",
                        "null"
     
    The \r is not valid.
  • Chriddle Profile Picture
    8,436 Super User 2025 Season 2 on at
    Dynamic Content does not work with multiple types.
     
    Instead of manipulating the schema (as described by Pstork1), you can also ensure that no null value occurs during list creation:
    coalsece(<your_value>, '')
     
  • AR-15041655-0 Profile Picture
    12 on at
    @Chriddle Do I do this in my Select action?
     
    If so, how would i format it? this is how my map fields are formatted: 
     
    Left: 
    outputs('Compose_-_Column_Names')[1]
     
    Right: 
    split(item(),',')?[1]
  • Pstork1 Profile Picture
    68,697 Most Valuable Professional on at
    If I understand correctly what you are trying to do, then you shouldn't need to handle Nulls because any missing items from the CSV would be blanks, not nulls.  I tried reproducing your setup and here's what I got. 
    1) Used a manual trigger and put the CSV data lines in a variable and a linefeed variable
    2) Used Split with the Linefeed variable to create an array of lines from the CSV
    3) Used a Data Select to Split each line into fields and load them with the column names  Each field is retrieved with an index using 
             split(item(),',')[0] through  split(item(),',')[3]
    4) Did a regular Parse JSON with no changes to the Schema
    5) All fields now available as dynamic content

    ----------------------------------------------------------------------------------
    If this Post helped you, please click "Does this answer your question" and give it a like to help others in the community find the answer too!

    Paul Papanek Stork, MVP
    Blog: https://www.dontpapanic.com/blog
     
  • Verified answer
    Chriddle Profile Picture
    8,436 Super User 2025 Season 2 on at
    In fact, a valid CSV file cannot contain any null values.
    Depending on how you convert the CSV it might be because of a blank line at the end of the file.
    Simply remove empty lines with a filter before CSV conversion:
     
    Filter array
    From:
    split(
    	outputs('Compose-CSV'),
    	decodeUriComponent('%0A')
    )
    Filter:
    trim(item())
    is not equal to
    string(null)
    Select
    From:
    skip(
    	body('Filter_array'),
    	1
    )
    Name:
    split(item(), ',')[0]
    Email:
    split(item(), ',')[1]
    Dob:
    split(item(), ',')[2]
     
     
    Pro tip ;)
    Don't use the question mark (optional value) here: split(item(), ',')?[2]
    Rather than proceeding with invalid data, you probably want your flow to fail.
    Additional advantage: The Select already displays a descriptive error message.
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Automate

#1
Michael E. Gernaey Profile Picture

Michael E. Gernaey 522 Super User 2025 Season 2

#2
Tomac Profile Picture

Tomac 364 Moderator

#3
abm abm Profile Picture

abm abm 243 Most Valuable Professional

Last 30 days Overall leaderboard