drno94939847
drno94939847
采纳率0%
2015-01-28 17:33

在javascript中使json正确

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 :-)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • dongmeiyi2266 dongmeiyi2266 6年前

    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.

    点赞 评论 复制链接分享
  • duankuixi1930 duankuixi1930 6年前
    "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.

    点赞 评论 复制链接分享
  • douqiju2520 douqiju2520 6年前

    You need to use JSON.stringify() function

    console.log( "JSON Data: " + JSON.stringify(json) );
    
    点赞 评论 复制链接分享
  • dongzilu0178 dongzilu0178 6年前

    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.

    点赞 评论 复制链接分享

为你推荐