首页 > 解决方案 > 使用 PHP/JS 将 API 作为对象返回

问题描述

我将 PHP 请求作为数组返回:

JS:

$('#btnRun1').click(function() {

    $.ajax({
        url: "source/php/getCityDetails.php",
        type: 'POST',
        dataType: 'json',
        data: {
            q: $('#selCity').val()
            },
        success: function(result) {

            console.log(JSON.stringify(result));

            if (result.status.name == "ok") {

                $('#txtCityName').html(result['data'][0]['toponymName']);
                $('#txtLat').html(result['data'][0]['lat']);
                $('#txtLong').html(result['data'][0]['lng']);
                $('#txtId').html(result['data'][0]['Id']);
    
                                    
            }
        
        },
        error: function(jqXHR, textStatus, errorThrown) {
            // TBC
        }
    });
});

PHP:

<?php

ini_set('display_errors', 'On');
error_reporting(E_ALL);

$executionStartTime = microtime(true);



$url='http://covered/searchJSON?formatted=true&q=' . $_REQUEST['q'] . '&maxRows=1&lang=en&username=covered';


$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$url);

$result=curl_exec($ch);

curl_close($ch);

$decode = json_decode($result,true);    

$output['status']['code'] = "200";
$output['status']['name'] = "ok";
$output['status']['description'] = "success";
$output['status']['returnedIn'] = intval((microtime(true) - $executionStartTime) * 1000) . " ms";
$output['data'] = $decode['covered'];



header('Content-Type: application/json; charset=UTF-8');

echo json_encode($output); 
?>

这按预期工作,接受请求并将其发布到 HTML。

我需要对作为对象而不是数组返回的另一个 API 请求执行相同的操作。我不知道如何重新编码这些 '$('#txtCityName').html(result['data'][0]['toponymName']);' 这样做。

有没有人可以帮助或指出我可以弄清楚的方向?我在 Stackoverflow 或 Google 上找不到任何我可以理解或实施的解决方案。

编辑:添加示例

用数组返回

带对象返回

标签: javascriptphparraysapiobject

解决方案


感谢 AbraCadaver!

改变:

$('#txtCityName').html(result['data'][0]['toponymName']);

至:

$('#txtCityName').html(result.data.toponymName);

正是我要返回的对象。


推荐阅读