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

解析json错误:SyntaxError:JSON.parse:JSON数据第1行第2列的意外字符

叶翰林
2023-03-14
问题内容

从php将json解析为javascript时出现问题

这是我的示例代码:

//function
MethodAjax = function (wsFile, param) {
    return $.ajax({
        type: "POST",
        dataType: "json",
        url: '../proses/' + wsFile + ".proses.php",
        data: 'param='+param,
        error: function (msg) {
            return;
        },
    });
};

//call function 
$(document).ready(function() {

    $('#getproduk').click(function(){
        var param = {
        ProdukId : '1',
        ProdukName : 'test'
    };

    CallMethodWithAjax('try', JSON.stringify(param)).done(function(data){
        $data =  JSON && JSON.parse(data) || $.parseJSON(data); 
    });
});

//Simple Php code
<?php
    $data = $_POST['param'];

    $data = (json_decode($data));

    $data1['name'] = $data->ProdukName;
    $data1['id'] = $data->ProdukId;
    $data1['test'] = 'test';


    echo json_encode($data1);
?>

//post, response and error at console
response : {"name":"test","id":"1","test":"test"}
post : param    {"ProdukId":"1","ProdukName":"test"}
error : SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON  data

如何解决这个问题,我尝试了在SO和google上找到的解决方案,但仍然无法解决此问题

请有人帮忙

谢谢


问题答案:

如果响应为JSON,则jQuery的$
.ajax()
函数将生成一个JavaScript对象,因此,我认为您看到的错误是尝试解析JavaScript对象而不是您期望的字符串的结果。在提供给该done函数的回调中,检查data并发现它是一个对象,不需要JSON.parse结果。



 类似资料:
  • 问题内容: 我花了6个小时以上的时间在代码中找到异常或特殊字符,但找不到。我在这里检查了所有类似的消息。 我正在发送带有巨大弹出窗口的表单。首先,我使用内联弹出窗口打开表单,而不是将所有输入发送到main.js进行验证。 所以,我只需要一只第三只眼。 我有:,, 这是代码 形成 JS / AJAX PHP-register.php 错误消息在这里 JSON输出 Chrome控制台: Firefox

  • 注意:我已经查看了文件的十六进制,没有什么不合适的

  • 问题内容: 我的代码有什么问题?我在测试服务器上运行了代码,并且代码可以正常工作,但是当我将其上传到生产服务器时,我得到了 这是我的代码 问题答案: 该错误很可能是由于 您可能会使用不支持闭包的PHP 5.2或更早版本。您可以找出正在使用的PHP版本 。 您可能需要升级到PHP 5.3+,或者使用或编写静态函数并将其作为回调传递。 这是最后一个选项的示例,使用一个简单的类来存储状态:

  • 问题内容: 我在使用json.loads转换为dict对象时遇到麻烦,我无法弄清楚我在做什么错。我得到的确切错误是 这是我的代码: 我很确定错误发生在第二行到最后一行 但我不知道该如何解决。任何意见,将不胜感激。 问题答案: 将json字符串加载到python中,将python转储到json字符串中,例如: 所以那行是不正确的,因为您正在尝试使用python ,并期望应该有一个有效的。 因此,如果

  • 问题内容: 我从Web服务获取JSon数据,示例数据如下: 当我尝试将其转换时,它将引发错误,我这样做是: 我的班级是: LogCat说: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但在第1行第2列为BEGIN_ARRAY 问题答案: 错误说明发生了什么问题…您返回的是数组

  • 我是android编程新手。我有一个类,在这个类中,修改API调用是为了解析和显示JSON文件中的几个属性。但我得到: Java语言lang.IllegalStateException:应为BEGIN\u对象,但在第2行第1列为字符串 好心帮忙。我搜索了答案,但没有发现JSON响应有任何问题。发布了我的JSON响应和JAVA类: JSON响应: JAVA文件: 模型类: