JSON-parse-Transformed.html - JSON.parse() Value Transformed


How to write a reviver function to transform values while the JSON.parse() function is parsing the JSON text string?

✍: FYIcenter.com


Below is a good example on using a reviver function with the JSON.parse() call to transform parsed JSON element values:

<!-- JSON-parse-Transformed.html
     Copyright (c) FYIcenter.com
<script type="text/javascript">

function transformer(key, value) {
    if (key == "age") {
       return undefined;
    } else if (key == "group" && value==null) {
       return "Guest";
    } else {
       return value;

function parser(str) {
   document.write("\njson = "+str+"\n");
   var obj = JSON.parse(str,transformer);
   for (var prop in obj) {
       document.write(`obj.${prop} = ${obj[prop]}\n`);

   document.write("<p>JSON.parse() Reviver to Transform Values:</p>");

   parser('{"name": "Joe", "age": 25, "group": null}');
   parser('{"name": "Jay", "age": 55, "group": "VIP"}');
   parser('{"name": "Kim", "age": 30, "group": "Host"}');


The transformer() is used as the reviver function in the JSON.parse() call to remove the "age" name value pairs, and to provide a default value "Guest" to the "group" name value pairs.

Open the above code in a Web browser. You see the following output:

JSON.parse() Reviver to Transform Values:

json = {"name": "Joe", "age": 25, "group": null}
obj.name = Joe
obj.group = Guest

json = {"name": "Jay", "age": 55, "group": "VIP"}
obj.name = Jay
obj.group = VIP

json = {"name": "Kim", "age": 30, "group": "Host"}
obj.name = Kim
obj.group = Host


Using JSON in JavaScript

⇒⇒JSON Tutorials

2017-09-08, 161👍, 0💬