Connecting Tech Pros Worldwide Help | Site Map

evaluating a object string

  #1  
Old March 6th, 2008, 12:25 PM
jman
Guest
 
Posts: n/a
var x = eval("{ 'flag' : 1 }");
alert(x);
alert(x.flag);

why doesn't the above work?


  #2  
Old March 6th, 2008, 12:45 PM
Henry
Guest
 
Posts: n/a

re: evaluating a object string


On Mar 6, 12:17*pm, jman wrote:
Quote:
* * * * * * var x = eval("{ 'flag' : 1 }");
* * * * * * alert(x);
* * * * * * alert(x.flag);
>
why doesn't the above work?
Because the - eval - method treats its string input as a javascript
program and a javascript program commencing with an opening brace is a
program that starts with a block statement. That makes the content of
the block statement a syntax error.

If you want to have your string interpreted as an object literal you
have to force it into a context were it must be interpreted as an
expression. Putting parenthesis around it will achieve that end.
  #3  
Old March 6th, 2008, 01:15 PM
SAM
Guest
 
Posts: n/a

re: evaluating a object string


Henry a écrit :
Quote:
On Mar 6, 12:17 pm, jman wrote:
Quote:
> var x = eval("{ 'flag' : 1 }");
> alert(x);
> alert(x.flag);
>>
>why doesn't the above work?
>
Because the - eval - method treats its string input as a javascript
program and a javascript program commencing with an opening brace is a
program that starts with a block statement. That makes the content of
the block statement a syntax error.
>
If you want to have your string interpreted as an object literal you
have to force it into a context were it must be interpreted as an
expression. Putting parenthesis around it will achieve that end.
can you give the code ?
I didn't understand where to put these parenthesis
  #4  
Old March 6th, 2008, 01:25 PM
Henry
Guest
 
Posts: n/a

re: evaluating a object string


On Mar 6, 1:07*pm, SAM wrote:
<snip>
Quote:
can you give the code ?
I didn't understand where to put these parenthesis
var x = eval("({ 'flag' : 1 })");

- or:-

var x = eval("("+"{ 'flag' : 1 }"+")");
  #5  
Old March 6th, 2008, 07:55 PM
SAM
Guest
 
Posts: n/a

re: evaluating a object string


Henry a écrit :
Quote:
On Mar 6, 1:07 pm, SAM wrote:
<snip>
Quote:
>can you give the code ?
>I didn't understand where to put these parenthesis
>
var x = eval("({ 'flag' : 1 })");
Thought having tried that ... ? !

Thanks
now it rests to understand how that works :-)

Perhaps there is a way to see step to step how 'eval' treats the string.
Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
Requesting advice how to clean up C code for validating string represents integer robert maas, see http://tinyurl.com/uh3t answers 232 April 16th, 2007 04:55 AM
problem with "Object reference not set to an instance of an object" Chris answers 35 March 11th, 2007 09:05 PM
String vs new String Grant Wagner answers 8 July 23rd, 2005 09:27 PM
Using setInterval inside an object Daniel answers 28 July 20th, 2005 09:52 AM