JSON数据格式已更改&功能建设无序列表停止工作?

时间:2010-11-30 10:32:04

标签: javascript jquery json

我传递了一些数据,将其转换为json& json输出像;

[{"msg":"1: AVAILABLE: should be publicly available"},{"msg":"1: API USAGE: Uses api 
of twitter to develop messaging service \n PUBLICALLY AVAILABLE: Should be publically 
available"},{"msg":"1: EX_DES_EXP: Help novice users to exchange \n design experiences 
through specifications messages"}] 

我使用以下脚本使用此json数据构建无序列表:

 <script type="text/javascript" language="javascript">
 jQuery(document).ready(function() { 
 jQuery.getJSON("http://127.0.0.1/conn_msg2_qua.php", function (jsonData) {
 var markup;
 markup = [];
 jQuery.each(jsonData, function (i, j) {
    markup.push("<li>");
    markup.push(j.msg);
    markup.push("</li>");
 });
 jQuery('#msg_q').append(markup.join(""));
 });});
 </script>

  <script> 

现在我将转换为json的数据的实现更改为bit&amp; json看起来像

["1 AVAILABLE: should be publicly available","2 API USAGE: Uses api of twitter to  
 develop messaging service \n PUBLICALLY AVAILABLE: Should be publically available","3 
 EX_DES_EXP: Help novice users to exchange \n design experiences through 
 specifications messages"] 

我的函数停止将其打印为无序列表。问题是什么导致了这一点。我如何再次使其发挥作用。

2 个答案:

答案 0 :(得分:1)

替换:

markup.push(j.msg);

使用:

markup.push(j);

<强>更新

我还建议您更改将文本注入HTML的方式。而不是:

markup.push("<li>");
markup.push(j);
markup.push("</li>");
[...]
jQuery('#msg_q').append(markup.join(""));

...使用类似的东西:

var li = $("<li></li>");
li.text(j);
markup.push(li);
[...]
jQuery('#msg_q').append(markup);

答案 1 :(得分:0)

因为它只是一个字符串数组,所以你只需要循环中的j(字符串),而不是.msg属性(字符串没有),如下所示: / p>

jQuery.each(jsonData, function (i, j) {
  markup.push("<li>");
  markup.push(j);
  markup.push("</li>");
});