亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

未解析嵌套在 JSON 響應中的值

未解析嵌套在 JSON 響應中的值

PHP
喵喵時光機 2021-09-05 17:01:41
我正在對端點進行 REST 調用,但遇到了內部屬性保持字符串而不轉換為 Javascript 的問題。這是我得到的:"43750": {    "taskId": 43750,    "statusId": 1,    "set_at": "2019-03-27 16:20:51",    "userId": 2,    "value": "[{\"text\":\"Recreational Vehicle\"}]" <-- Problem},這是我應該得到的(舊 API 響應):"43750": {  "userId": "2",  "timestamp": "2019-03-27 16:20:51",  "value": [      {         "text": "Recreational Vehicle"      }   ],   "statusId": "1"},這些是來自 Chrome 的 DevTools 網絡部分的響應選項卡的片段。出于某種原因,對象數組沒有被解析為 javascript,而是剩余的字符串。我在 PHP 中將 Content Type 設置為 json 并在請求中使用了 json 數據類型。我錯過了什么?前端  $.ajax({        type: 'POST',        dataType: 'json',        url: API_URL,        data: {           action: 'getProject',           projectId: this.getActiveProjectId()        },        success: function (response) {            console.log('[AJAX RESPONSE] LOAD ACTIVE PROJECT', response);            debugger;        }    });后端<?php$default_options = [            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,            PDO::ATTR_EMULATE_PREPARES => false,            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,        ];$pdo = new PDO(    sprintf(    "dblib:host=%s;dbname=%s",        $server,        $database    ),    $user,    $pass,    $default_options );/* Determine action, handle request *//* Do PDO Query */    $tasks = $statement->fetchAll();header("Access-Control-Allow-Origin: *");header('Content-Type: application/json');echo json_encode($tasks, JSON_PRETTY_PRINT);
查看完整描述

1 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

value表中的列包含一個JSON字符串。您要么需要在發送響應之前對其進行解碼:


foreach ($tasks as &$task) {

    $task['value'] = json_decode($task['value']);

}

或者在 JavaScript 中執行:


success: function(response) {

    response.forEach(r => r.value = JSON.parse(r.value));

    // rest of success function

}


查看完整回答
反對 回復 2021-09-05
  • 1 回答
  • 0 關注
  • 160 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號