All,
Question:
What are my options to make sure my 'parse JSON' ignores/accepts null values when parsing JSON payload from a Http Response. Are there alternate options to extract json elements for my scenario ?
Context:
---------
I am buidling flow to send out email based on contents of http JSON response. JSON response will have attributes with value as null. Parse JSON is throwing error message "message": "Invalid type. Expected Object but got Null." I do not use the json attributes with null values in the flow and ok to loose it.
schema
----------
{
"type": "array",
"items": {
"type": "object",
"properties": {
"A": {
"type": "string"
},
"B: {
"type": "string"
},
"C": {
"type": "string"
},
"D": {
"type": "object"
},
"E": {
"type": "string"
},
"F": {
"type": "string"
},
"G": {
"type": "string"
},
"H": {
"type": "string"
}
},
"required": [
"A",
"B",
"C",
"D",
"E",
"F",
"G"
]
}
}
JSON Payload
-------------------
{
"A": "dfd",
"B": "ASFS",
"C": "asfs",
"D": null,
"E": "asFF",
"F": "3244231",
"D": "43124",
"G": "qwqdas",
"H": "zxz"
}
Error Message
"message": "Invalid type. Expected Object but got Null."
Hi @saadu,
I could confirm that the NULL value can't be recognized by Microsoft Flow, at least currently.
The empty function under Workflow Definition Language would work with the NULL value, but for other functions, not working.
I will forward this from my side, hope there should be some workarounds for this.
Regards,
Michael
Hi @saadu,
Update here for the NULL value in WDL:
Quoted from Staff Samuel
"
Yes, technically the null operator ('?') and/or coalesce() function would work, but they require some hand-crafting if being used in the current Flow editor UI.
The workaround is that you can write a raw logicapp expression as long as it evaluates to a string. So for the possibly-null field, instead of using the automatic "Description" token in the UI, you'd write something like:
Desc: @{coalesce(triggerBody()['description'], 'default description text')}
The caveats for falling back to a raw logicapp expresion:
1. Must evaluate to a string
2. Must have a string or character before the @ sign
3. The field will become read-only after the initial save.
"
Reference: Is there a way to process null values from CRM to SharePoint.
Hope the information above is helpful.
Regards,
Michael
Hi @v-micsh-msft,
Can you elaborate on this a little further? Are we using the operator within the Parse JSON function?
I recently had a similar challenge. My solution was to allow NULL values through my JSON Schema. In this way any NULL values passed did not cause error.
EG:
"CompanyName": {
"type": [
"string",
"null"
]
}
LOVE YOU, BEN! This really helped, thanks! 🙂
Thank you
Thank you Ben, this resolved my import issue.
Does anyone have a simple strategy/implementation for when importing data into a list to handle whether:
Record already exists
a) update if record has changed
b) skip if no change
Got link to point me in the right direction?
Does your new record contain any unique information like a record ID? You could try finding the item in the list before inserting. I'm assuming you mean SharePoint lists. This might help: Retrieving Single Item from SharePoint List in Microsoft Flow
Unfortunately, this does not work on array data types. Can anyone suggest?
Thank you so much for this. Saved lot of my time.
User | Count |
---|---|
89 | |
37 | |
26 | |
13 | |
12 |
User | Count |
---|---|
128 | |
53 | |
38 | |
26 | |
21 |