JSON格式问题

时间:2014-03-30 05:52:48

标签: jquery ajax json

现在我正在获取我的JSON网址响应,因为我想打印此网址

[{"chat":"ed test","displayname":"Ed Student","created_at":"2014-03-29 21:42:35"},
{"chat":"test from sue","displayname":"Sue Student","created_at":"2014-03-29 21:42:25"},{"chat":"Test from instructor","displayname":"Jane Instructor","created_at":"2014-03-29 21:42:18"}]

但我希望看起来像这样:

[

   {

     "chat":"ed test",
     "displayname":"Ed Student",
      "created_at":"2014-03-29 21:42:35"},
    {
      "chat":"test from sue",
      "displayname":"Sue Student",
    }
]

等等。

我的代码如下:

$.ajax({

        type: "POST",
        url: "chatlist.php?PHPSESSID=9c2b21f6309fd0cb8c157b54eafb7381",
        cache: true,
        async: true,
        dataType:"json",
        data: JSON.stringify(messages, null, 4),
    success: function(data){ 
            $("#messages").empty();
            for (var i = 0; i < data.length; i++) {
                entry = data[i];
                $("#messages").append("<p>"+htmlentities(entry.chat)+'<br/>&nbsp;&nbsp;'
                        +htmlentities(entry.displayname)+' '+htmlentities(entry.created_at)+"</p>\n");
                    console.log(JSON.stringify(data[i]));
            }
            OLD_TIMEOUT = setTimeout('messages()', 4000);
        }
  });

是否可以格式化我通过此$ .ajax调用获得的响应URL?

3 个答案:

答案 0 :(得分:2)

我认为你在寻找,

JSON.stringify(value[, replacer [, space]])

像,

var data = JSON.stringify(data, null, "\t"); // Using a tab character mimics standard pretty-print appearance

console.log(data);

检查

DEMO

阅读:

JSON.stringify

答案 1 :(得分:1)

在我的PHP代码中我有

echo(json_encode($messages));

我什么时候应该

echo(json_encode($messages, JSON_PRETTY_PRINT));

这是打印出我的JSON。

答案 2 :(得分:-1)

jq是命令行json处理器。您也可以使用jq来格式化json。当您将ajax调用响应保存为json文件时,jq是在命令行上格式化它的最佳方式。

示例:

$ echo '{ "foo": "lorem", "bar": "ipsum" }' | jq .
{
  "bar": "ipsum",
  "foo": "lorem"
} 

请参阅jq主页,其中包含教程:http://stedolan.github.io/jq/

另见类似的SO问题:How can I pretty-print JSON in (unix) shell script?