Xbasic
json_flatten_default Function
Syntax
C jsonOut = json_flatten_default(c jsonIn)
Arguments
- jsonInCharacter
The JSON containing nested arrays.
Returns
- jsonOutCharacter
Returns the JSON flattened with no nested arrays.
Description
Takes JSON with nested arrays and "flattens" the JSON so that there are no nested arrays.
Discussion
The json_flatten_default() function converts a JSON string with nested arrays into a JSON string with no nested arrays. This is same as the json_flatten() function, but the template required by the json_flatten() function is automatically generated from the input JSON.
In the example below, notice that each parent record is repeated for each record in the nested array.
Example
dim json as c
json = <<%str%
[
{"name": "John", "Lastname" : "Smith", "City" : "Boston", "State" : "MA", "Children": [
{"Name" : "Callie", "Age" : 5},
{"Name" : "Griffin", "Age" :3},
{"Name" : "Luke", "Age" : 1}
]
},
{"name": "Henry", "Lastname" : "Rhodes", "City" : "New York", "State" : "NY", "Children": [
{"Name" : "Howard", "Age" : 15},
{"Name" : "Robert", "Age" : 11}
]
},
{"name": "Allison", "Lastname" : "Berman", "City" : "Los Angeles", "State" : "CA", "Children": [
{"Name" : "Jeff", "Age" : 35},
{"Name" : "Roxanne", "Age" :33},
{"Name" : "Claudia", "Age" : 31},
{"Name" : "Denzel", "Age" : 11}
]
}
]
%str%
dim json2 as c
json2 = json_flatten_default(json)
?json2
= [
{"name": "John","Lastname": "Smith","City": "Boston","State": "MA","Children_Name": "Callie","Children_Age": 5},
{"name": "John","Lastname": "Smith","City": "Boston","State": "MA","Children_Name": "Griffin","Children_Age": 3},
{"name": "John","Lastname": "Smith","City": "Boston","State": "MA","Children_Name": "Luke","Children_Age": 1},
{"name": "Henry","Lastname": "Rhodes","City": "New York","State": "NY","Children_Name": "Howard","Children_Age": 15},
{"name": "Henry","Lastname": "Rhodes","City": "New York","State": "NY","Children_Name": "Robert","Children_Age": 11},
{"name": "Allison","Lastname": "Berman","City": "Los Angeles","State": "CA","Children_Name": "Jeff","Children_Age": 35},
{"name": "Allison","Lastname": "Berman","City": "Los Angeles","State": "CA","Children_Name": "Roxanne","Children_Age": 33},
{"name": "Allison","Lastname": "Berman","City": "Los Angeles","State": "CA","Children_Name": "Claudia","Children_Age": 31},
{"name": "Allison","Lastname": "Berman","City": "Los Angeles","State": "CA","Children_Name": "Denzel","Children_Age": 11}
]