JSON.parse给我一个错误,但JSONLint说它是一个有效的json

时间:2015-03-28 17:31:59

标签: javascript php mysql ajax json

我正在尝试使用jqplot创建一个图形,提取值为mysql ajax,我已经阅读了很多关于此的信息,我是IT而且对我而言,这个问题有点令人尴尬。这让我头疼不已:(

我花了20天时间解决这个问题,但我不能独自一人,任何人都可以帮助我吗?我几乎尝试了所有东西(json.parse,parsejson,getjson,数据类型html,数据类型json,方法get和post .....)

我知道这很容易...... 当我尝试做JSON.parse(resultado)时为什么会崩溃?

http://jsonlint.com/说它是一个有效的Json,但当我尝试做JSON.parse时,他给我一个例外说法(“JSON.parse:JSON数据的第1行第1列的意外字符”)

似乎是[字符

这是php:

<?php include('conex.php');
$datos=mysql_query("SELECT * FROM Meteorologia");
$arrDatos = array();
while ($rs=mysql_fetch_assoc($datos))
    $arrDatos[] = array_map('utf8_encode', $rs);
echo json_encode($arrDatos);
?>

我获得:

[{"FECHA":"2015-01-01","OZONO":"3","KT":"2","VV":"4"},{"FECHA":"2016-03-03","OZONO":"68","KT":"86","VV":"78"}]

js是:

try
{
    var strHtml = "";
    $.ajax({
            global: false,
            dataType: "html",
            async: false,
            type: "POST",
            url: $("#form").attr('action'),
            data: $("#form").serialize(),
            success: function(resultado){
                alert('success!!'+resultado);
                console.log(typeof resultado);
                console.log(resultado);
                //var datosRecibidos = JSON.parse(resultado);
                //var datosRecibidos = jQuery.parseJSON(resultado);
                var lista = "";
                $.each( resultado, function( key, value ) {
                        if(value.FECHA == "2015-01-01")
                        {
                            alert('si!!');
                        }
                        else
                        {
                            alert('sino!!');
                        }
                });
            },
            error: function(data){
                alert('Error!!: '+data);
            }
    });
}
catch(ex)
{
    alert("catch!!"+ex);
}

使用$ each键值...我可以在数组内移动吗?

1 个答案:

答案 0 :(得分:0)

尝试了很多事情后(更改数据类型json,html,...,方法获取,发布...)

我使用地址文件进行调试:/// C:/ xampp / htdocs /traddatos/index.html

而不是 http://localhost /traddatos/index.html

所以解决办法是将地址更改为LOCALHOST

(感谢改革,帮助我实现他的愿景)

新颖的错误=)