Tim Joyce
Tim Joyce

Reputation: 4517

SCRIPT5009: 'JSON' is undefined

I get the following error in IE 9 SCRIPT5009: 'JSON' is undefined only when in compatability mode. the line causing this error is

JSON.stringify(togObj.Answers)

The error does not occur in ie (non-compatability mode), Chrome or Firefox. Any idea what's going on here?

Upvotes: 36

Views: 70038

Answers (7)

rajar
rajar

Reputation: 53

I have done LOCAL Jquery added .NEt 2.0 code testing, it works fine without any problem. But after migrate the code to IIS v6 server then access from same IE browser, then problem appear "JSON" undefined. After read this recommendation, downlode the file json2.js and add below into source code.

<script  type="text/javascript" src="json2.js"></script>

EVERYTHING WORKING Fine.

Good Thank you.

Upvotes: 2

Mohammed Rafeeq
Mohammed Rafeeq

Reputation: 2694

You need to include json2.js

see json2 inclusion

for more details. There are cases where we have to deal with cases where clients use IE7 standards. So our code had to cater to such cases too. Ours being a retail website is accessed by hundreds of clients who use IE7 standards. Including json2 solves this issue

Upvotes: 0

Son-Huy Pham
Son-Huy Pham

Reputation: 1899

Just an update (2013!) to the links provided above-

Per http://www.json.org/js.html, a link at the bottom of the page will refer you to the latest implementation:

https://github.com/douglascrockford/JSON-js

Upvotes: 0

iMatoria
iMatoria

Reputation: 1448

If you are using jQuery library at your page, than you could use $.parseJSON.

Upvotes: 0

NakedBrunch
NakedBrunch

Reputation: 49413

See here for a blog post explaining the situation: Resolve JSON is Undefined Error in Internet Explorer

Include the JSON library in your page and you should be good to go.

Upvotes: 39

phihag
phihag

Reputation: 287875

JSON is not available in compatibility mode IE:

Not supported in the following document modes: Quirks, Internet Explorer 6 standards, Internet Explorer 7 standards.

Since you shouldn't be using (or worse, reyling on ) compatibility modes in the first place, you should switch IE to standards-mode by adding a valid doctype.

Upvotes: 24

Joe
Joe

Reputation: 82614

Yes, JSON is defined natively in modern browsers, but not in IE. You need to import a library. For example, http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js

Upvotes: 7

Related Questions