Het gebruik van JSON object als argumenten bij een Get/Put REST API is standaard.
Deze data dient omgevormd te worden naar een bruikbare data.
Hiervoor zijn er twee methods
Bij de aanroep van de volgende methode, kan er als extra parameter een functie worden meegegeven (callback functie).
Deze kan gebruikt worden om de data te manipuleren, alvorens te bundelen in een JSON object.
Opmerking: trailing komma's zijn niet toegelaten in een JSON object, dus strings met trailing komma’s geven een error!
let userStr = '{"name":"Sammy","email":"sammy@example.com","plan":"Pro"}';
let userObj = JSON.parse(userStr, (key, value) => {
if (typeof value === 'string') {
return value.toUpperCase();
}
return value;
});
console.log(userObj);
Stringify neemt een Javascript object en vormt het om tot een JSON string.
De functie kan twee argumenten hebben een “replacer” functie en een string of number als separator (default is dit komma)
Wanneer een functie als return value “undefined” geeft, wordt deze key-value niet opgenomen in de JSON string.
In onderstaand voorbeeld zal zo de data ontdaan worden van het email adres en zal de output er als volgt uitzien:
{"name":"Sammy","plan":"Pro"}
Wanneer je een andere separator geeft zoals bij deze instructie, zal de JSON string er als volgt uitzien.
let userStrSpace = JSON.stringify(user, null, '...');
{
..."name": "Sammy",
..."email": "sammy@example.com",
..."plan": "Pro"}
let userObj = {
name: "Sammy",
email: "sammy@example.com",
plan: "Pro"
};
function replacer(key, value) {
console.log(typeof value);
if (key === 'email') {
return undefined;
}
return value;
}
let userStrReplacer = JSON.stringify(userObj, replacer);
console.log(userStrReplacer);
Code voor het parsen van een Brandmeister output JSON naar een sheet: How do I fetch and parse JSON data to Google Sheets Script?