Assertion/is_json.js

const is_string = require('./is_string');
/**
 * A function that determines if a value is valid JSON string.
 *
 * @memberof module:Assertion
 * @param {*} value The value to check.
 * @return {Boolean} true if the value is a valid JSON string, otherwise false.
 * @since 0.1.0
 * @example
 * const ajaxData = {
 *     url: www.linkedin.com/in/stefan-lazarevic
 * };
 *
 * is_json(JSON.stringify(ajaxData)); // => true
 * is_json("Hello World"); // => false
 * is_json(ajaxData); // => false
 */
function is_json(value) {
    if (is_string(value)) {
        try {
            JSON.parse(value);
            return true;
        } catch (err) {
            return false;
        }
    } else {
        return false;
    }
}

module.exports = is_json;