当前位置: 首页 > 面试题库 >

JSON.parse:意外字符

呼延永新
2023-03-14
问题内容

在尝试进入sql查询数组并获得以下javascript错误后,我尝试通过php jquery传递json。

JSON.parse: unexpected character

返回sql结果的函数:

public function selectassocSql($sql){
$i = 0;
        $resSelect = array();
        mysql_query("SET NAMES 'utf8'");
        $result = mysql_query($sql);
        while ( $row = mysql_fetch_assoc($result) )
        {
            $resSelect[$i] = $row;
            $i++;
        }
        mysql_free_result($result);
        return $resSelect;
}

以这种方式使用此功能后,

$sql = "SELECT id, code, name FROM table WHERE code LIKE '%$codcli%' ";
$v = $data->selectassocSql($sql);
echo json_encode($v, JSON_FORCE_OBJECT);

而javascript代码是这样的:

$('#formclientes').submit(function(e){

        e.preventDefault();
        $.ajax({
            type: 'POST',
            url:$(this).attr('action'),
            data:$(this).serialize(),
            success:function(data)
            {
              //console.log("SUCCESS " + data);
              var json_cli = $.parseJSON(data);
            }
        })
    })

如何纠正此错误以及如何从jquery读取json?


问题答案:

您不需要$.parseJSON调用,因为jQuery自动执行该调用,因为如果未指定dataType属性,则jQuery会尝试猜测它并调用正确的函数来解析响应,然后再将数据处理为成功函数。

   $.ajax({
        type: 'POST',
        url:$(this).attr('action'),
        data:$(this).serialize(),
        success:function(data)
        {
          //console.log("SUCCESS " + data);
          var json_cli = data;
        }
    })


 类似资料:
  • 问题内容: 我收到此错误: JSON.parse:意外字符 当我在firebug中运行以下语句时: 为什么会这样呢?JSON字符串对我来说似乎是正确的,我也使用JSHint对其进行了测试。在上述情况下,传递的对象是服务器响应,其内容类型设置为 问题答案: 您不是在解析字符串,而是在解析一个已经解析的对象:)

  • 问题内容: 我有一个无法调试的JSON解析错误。代码如下: 和JSON: 在Firefox中,错误为“ SyntaxError:JSON.parse:意外字符”,在Chrome中为“未捕获的SyntaxError:意外令牌C” 有任何想法吗? 编辑:这在我的本地主机设置上工作正常。 * 问题答案: 如果服务器正在发送有效的JSON,则无需调用,因为jQuery在检索响应时会自动对其进行解析。我不知

  • 问题内容: 为什么每次我做时:- 它只是解析很好,但是当我这样做时:- 它给我一个错误,说:- 问题答案: 您要它解析JSON文本(不是)。那是无效的JSON,字符串必须用双引号引起来。 如果要与第一个示例等效:

  • 问题内容: 尝试解析此JSON字符串时出现错误 扩展的字符串对象: 问题答案: 验证您的json字符串。如果可以,请尝试以下操作:

  • [`const express=require('express');const app=express();const https=require('https'); 常量url=“https://api.thevirustracker.com/free-api?countrytimeline=US”; app.get(“/”,(req,res)=>{res.send(“server is ru

  • 问题内容: 我从网络服务返回的JSON遇到问题。看起来JSON缺少引号,但是当我在JSON中添加引号时,出现错误。这是错误消息:’Uncaught SyntaxError:意外的标记o。当我将字符串记录到控制台时:[对象对象],[对象对象] 这是一些模拟错误的示例代码: 这是相同的代码,在字符串两边用单引号引起来。有用 但是,当我尝试在字符串中添加引号时,就像我在实际代码中似乎需要的那样,它失败了