Why does eval in JS need brackets to process JSON data?
Due to the rise of Ajax, the lightweight JSON data format is gradually becoming popular as the transmission format between the client and the server, the problem is how to convert the JSON Data Built on the server to available JavaScript objects. Using eval functions is undoubtedly a simple and direct method. During conversion, enclose the JSON string with parentheses:
Var jsonObject = eval ("(" + jsonFormat + ")");
Why should we add parentheses?
The purpose of parentheses is to force the eval function to forcibly convert the expressions in parentheses into objects when processing JavaScript code, rather than executing them as statements. For example, if no outer brackets are added to the object literal {}, eval identifies the braces as the start and end mark of the JavaScript code block, then {} is considered to have executed an empty statement. The following two execution results are different:
Alert (eval ("{}"); // return undefined
Alert (eval ("({})"); // return object [Object]