【问题标题】:Parsing Json data in JQuery/Javascript在 JQuery/Javascript 中解析 Json 数据
【发布时间】:2016-03-19 01:32:43
【问题描述】:

我看到了类似的讨论here。但是我返回的数据格式有点不同。 我有一个从服务器返回的 Json 字符串,如下所示

<!DOCTYPE HTML>
<html>
<head>
<style>


</style>
</head>
<body>

{"error":false}</body>
</html>

我需要从 Json 字符串中提取数据"error":false。 我尝试如下

(1)假设Json消息在结果变量中,然后我检查为

if(result.error == false)

它不起作用。

(2) 我还使用了jQuery.parseJSON,正如link 中所讨论的那样。 它也不起作用。 如何解析 Json 数据?

Json 数据在Jquery.ajax 中解析为返回消息如下

jQuery.ajax({
        url: "registrationdatavalidationatserver.php",
        type: "POST",
        data: $("form").serialize(), /*grab all elements in your form and serialize them */
        success:  function(result){
           //To parse result

        },
        error: function(){
           // the AJAX request failed as in timed out / bad url etc.

        } 
   });

(3) 如何从服务器返回消息,只返回 Json 数据而没有

<html>, <head>, <style>, etc. tags?

我从服务器返回echo json_encode($data);

【问题讨论】:

  • 等等,你是说 JSON 和所有那些 HTML 都被返回了吗?
  • 您在 JSON 之前/之后有 html,因此无法按预期解析。你的回复应该是这样的{"error":false}

标签: javascript jquery json ajax


【解决方案1】:

我有一个从服务器返回的 Json 字符串,如下所示。

不,您只需要从服务器返回以下内容:

{"error": false}

假设Json消息在结果变量中,然后我检查为if(result.error == false)

它永远不会工作,因为它是一个 HTML。不是 JSON。

如何在没有 Json 数据的情况下从服务器返回消息 &lt;html&gt;, &lt;head&gt;

即使在您发送输出之前,请确保您没有向浏览器发送任何内容。在 PHP 标头中定义这些:

<?php
  header("Content-type: application/json");
  die(json_encode($arrayData));
?>

除此之外不得有任何其他内容。如果您在进行这种设置时感到困惑,那么为 JSON 输出创建一个专用文件也是明智之举。

【讨论】:

    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2012-06-05
    • 1970-01-01
    相关资源
    最近更新 更多