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
ヘルプ/フィードバックをいただければ幸いです。