Reputation: 2325
I am trying to setup an analytics script in which I use json like this:
var visitors = [
{ date: "2014-01-11", value: 7 },
{ date: "2014-01-12", value: 2 },
{ date: "2014-01-13", value: 5 },
];
Now, I am getting my json through ajax from an php page like this:
jQuery.getJSON( "assets/ajax/flurry.php", { method: "ActiveUsers" } )
.done(function( json ){
var visitors = json;
console.log( "JSON Data: " + json );
});
This produces this:
JSON Data: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
My output from the php page look like this:
[{"@date":"2015-01-14","@value":"948"},{"@date":"2015-01-15","@value":"4720"},{"@date":"2015-01-16","@value":"4989"},{"@date":"2015-01-17","@value":"5221"},{"@date":"2015-01-18","@value":"5658"},{"@date":"2015-01-19","@value":"5484"},{"@date":"2015-01-20","@value":"5508"},{"@date":"2015-01-21","@value":"5560"},{"@date":"2015-01-22","@value":"5576"},{"@date":"2015-01-23","@value":"5452"},{"@date":"2015-01-24","@value":"5524"},{"@date":"2015-01-25","@value":"5804"},{"@date":"2015-01-26","@value":"5714"},{"@date":"2015-01-27","@value":"5478"},{"@date":"2015-01-28","@value":"0"}]
How do I get it to produce an javascript json like the first one?
Any help is appreciated :-)
Upvotes: 0
Views: 110
Reputation: 1995
When you do "JSON Data: " + json
, you are actually converting the json
object to a string.
You can use "JSON Data: " + JSON.stringify(json)
instead.
Upvotes: 0
Reputation:
"JSON Data: " + json
Will convert the json
object into a string which looks like [object Object]
.
You can just do:
console.log( "JSON Data: ", json );
to write the object to the console instead of its string representation.
Upvotes: 0
Reputation: 369
When you use the following line:
console.log( "JSON Data: " + json );
The code casts the entire object as a string, which is usually not a very useful things as it replaces anything that is an object with this nice [object Object] you're getting.
You could either log the object itself in a separate parameter:
console.log( "JSON Data: ", json );
Or dump the JSON representation of the object:
console.log( "JSON Data: ", JSON.stringify(json));
But you'll probably see that your json
variable is already what you expected.
Upvotes: 4
Reputation: 18600
You need to use JSON.stringify()
function
console.log( "JSON Data: " + JSON.stringify(json) );
Upvotes: 1