data_is-json.js

/**
 * @module isJson
 * @description Determines if the specified string is JSON encoded.
 *
 * @since 1.0.0
 *
 * @param {string} str The string to be tested.
 *
 * @return {boolean} Returns true if the specified string is JSON encoded. Returns false otherwise.
 *
 * @example
 * import { isJson } from "@gravityforms/utils";
 *
 * function Example() {
 *   const str = '{"name":"John", "age":30}';
 * 	 const isJsonEncoded = isJson( str );
 * }
 *
 */
export default function( str ) {
	if ( str === null ) {
		return false;
	}
	try {
		JSON.parse( str );
	} catch ( e ) {
		return false;
	}

	return true;
}