解析 json 错误:SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
Posted
技术标签:
【中文标题】解析 json 错误:SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data【英文标题】:parsing json error : SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data 【发布时间】:2015-03-05 10:34:36 【问题描述】:我在将 json 从 php 解析为 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 找到的解决方案,但仍然无法解决这个问题
请人帮忙
谢谢
【问题讨论】:
【参考方案1】:如果响应是 JSON,jQuery 的 $.ajax() 函数将产生一个 JavaScript 对象,所以我相信您看到的错误是尝试解析 JavaScript 对象而不是您期望的字符串的结果。在您提供给done
函数的回调中,检查data
,您会发现它是一个对象,不需要JSON.parse
结果。
【讨论】:
以上是关于解析 json 错误:SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data的主要内容,如果未能解决你的问题,请参考以下文章
微信微信小程序 微信开发工具中新创建的json文件,编译报错VM1781:2 pages/module/module.json 文件解析错误 SyntaxError: Unexpected e(代
jQuery解析JSON出现SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data(示例代码
使用 Ext 解析简单 JSON 给出 SyntaxError: Unexpected token ILLEGAL
Json Web 令牌 - jose4j - SyntaxError:JSON 中位置 0 的意外令牌 e
VM603:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1