【问题标题】:Show JSON with jquery用 jquery 显示 JSON
【发布时间】:2010-02-27 20:03:49
【问题描述】:

我有以下 PHP 代码

 $val="<div id=user".$row['cid']." userid=".$row['cid']." class=innertxt><img src=images/images.jpg width=50 height=50><strong>".$uname."</strong><ul> <li>Email: ".$row['cemail']."</li> <li> <input type=checkbox id=select".$row['cid']." value=".$row['cid']." class=selectit /></li> </ul> </div>" ;

 $return["foo"] =$val;

 print json_encode($return);

但是一旦我得到结果,我就会得到以下格式?

<div id=user11 userid=11 class=innertxt>
    <img src=images\/images.jpg width=50 height=50>
    <strong>Ruby<\/strong>
    <ul>
        <li>Email: ruby@qualityhouse.ae<\/li>
        <li> <input type=checkbox id=select11 value=11 class=selectit \/><\/li> 
    <\/ul> 
<\/div>

为什么我会得到这个/以及如何解决它?

【问题讨论】:

  • 你的结果应该是 JSON 格式
  • 你在用 JSON 编码的文本做什么?你为什么首先对那个 HTML 片段进行 JSON 编码?
  • 你是如何解码 json 数据的?
  • 您是否尝试过在值周围使用单引号?例如 id='user11' 而不是 id=user11
  • @Sagi,虽然这是有效的,但我认为它与 \/ 的出现无关。这可能是一个 转义 问题,而且我不确定为什么它在 JSON 中编码。

标签: php jquery json


【解决方案1】:

可以使用stripslashes 方法。签出以下 sn-p:

print stripslashes(json_encode($return));

更多详情请访问php documentation

【讨论】:

    【解决方案2】:

    斜杠应该用反斜杠转义,所以输出是正确的。

    试试这个:

    var x = eval({ var: "<\/div>" });
    alert(x.var);
    

    它将产生正确的输出。 (&lt;/div&gt;)

    有趣的是,你得到的是一个字符串,而不是一个对象。你确定代码片段是正确的吗?因为它应该是:

    { foo: <div id=user11 userid=11 class=innertxt><img src=images\/images.jpg width=50 height=50><strong>Ruby<\/strong><ul> <li>Email: ruby@qualityhouse.ae<\/li> <li> <input type=checkbox id=select11 value=11 class=selectit \/><\/li> <\/ul> 
    <\/div> }
    

    你确定你写的是json_encode($return),而不是json_encode($return['foo'])

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 2014-09-13
      • 1970-01-01
      • 2012-12-30
      相关资源
      最近更新 更多