在 PHP 中,我有一个这样的 JSON 对象(即使在这里也不确定它的格式是否正确以及我是否正确传递它):
$someJSONObject = '{token:"randomtoken",signature:"signature"};
并在传递响应之前对其进行编码:
$response['code'] = 1;
$response['status'] = $api_response_code[ $response['code'] ]['HTTP Response'];
$response['data'] = $someJSONObject;
my_response($_GET['format'], $response); //json_encode($response)
然后在我的 JS 中,我以这样的字符串格式接收它:
{ code:1,
status:200,
data: '"{token:\\"randomtoken\\", signature:\\"signature\\"}"' }
我将其解析为一个对象:
phpObj = JSON.parse(body);
所以我可以访问“数据”:
dataObj = phpObj.data;
这给了我一个字符串的结果:
{token:\"randomtoken\", signature:\"signature\"} //console.log(dataObj)
在这里我迷失了方向,无法访问“令牌”,得到一个未定义的:
console.log('token: ' + dataObj.token) //token:undefined
我意识到我正在尝试点成一个字符串,所以在最后一步我一定做错了什么。但是,即使我尝试使用 JSON.parse 或 JSON.stringify 它似乎仍然没有帮助并给我一个“未定义”。
dataObj = JSON.parse(phpObj.data);
console.log(typeof(dataObj); //string
console.log(dataObj); //"\"{token:\\\"randomtoken\\\", signature:\\\"signature\\\"}\""
console.log(dataObj.token); //token: undefined
或者
dataObj = JSON.stringify(phpObj.data);
console.log(typeof(dataObj)); //string
console.log(dataObj); //"\"{token:\\\"randomtoken\\\", signature:\\\"signature\\\"}\""
console.log(dataObj.token); //token: undefined
任何帮助/反馈将不胜感激。