2

I get a JSON file via jQuery $.getJSON(url, function(data) { ... and want to parse it with either

var obj = JSON.parse(data);

or

var obj = jQuery.parseJSON(data);

The first line gives me "syntax error" (using IE8, should support JSON.parse), the second gives me "'center' is null or not an object".

This is the valid JSON file I'm using:

{
"center":{"lat":"51.99637","lon":"13.07520"},
"locations":
[
    { "name":"a string","info":"another string" },
    ... some more here ...
]
}

I'm not too familiar with Javascript. What am I doing wrong?

If I use a simple JSON array (= just the content of locations) I get valid data with $.each. Do I have to do something with data before I can use JSON.parse on it?

2 Answers 2

5

The problem is that the name of the function is slightly misleading : it doesn't give you JSON but already a parsed object. What it does is fetch some JSON and parse it for you.

data is a plain javascript object, you don't need to parse it.

Sign up to request clarification or add additional context in comments.

5 Comments

Should probably be JSON.parseFromString
I'd suggest to rename the function as $.fetchSomeJSONAndParseItForMePlease = $.getJSON;
Considering how angry people seem to get when someone calls a JavaScript object "JSON," you'd think more people would be up in arms about changing the jQuery method name to $.getJavaScriptDataStructure
Yeah, let's make a manifesto web site stop-confusing-people-about-what-is-json-with-your-stupid-function-name.org !
Ah, cool, works. Thanks for this quick answer! Should have been obvious to me. Sorry for not thinking.
2

$.getJSON will parse the data for you - you don't need to parse it manually after the fact.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.