0

我正在尝试将我的 Web 服务的结果作为数组获取,然后循环遍历结果以获取所有数据;到目前为止我做了什么:

在我的网络服务中,当我返回我使用的结果时

return json_encode($newFiles);

结果如下:

"[{\"path\":\"c:\\\\my_images\\\\123.jpg\",\"ID\":\"123\",\"FName\":\"John\",\"LName\":\"Brown\",\"dept\":\"Hr\"}]"

然后在我的 Web 应用程序中,我通过 RestService 类中的以下代码调用其余 Web 服务:

public function getNewImages($time) {
    $url = $this->rest_url['MyService'] . "?action=getAllNewPhotos&accessKey=" . $this->rest_key['MyService'] . "&lastcheck=" . $time;

     $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);
    if ($data) {
        return json_decode($data);
    } else {
        return null;
    }
}

然后在我的控制器中,我有以下代码:

public function getNewImgs($time="2011-11-03 14:35:08") {
    $newImgs = $this->restservice->getNewImages($time);
    echo  json_encode$newImgs;        
}
and I'm calling this `enter code here`controller method by AJAX:

$("#searchNewImgManually").click(function(e) {
        e.preventDefault();
        $.ajax({
            type: "POST",
            async: true,
            datatype: "json",
            url: "<?PHP echo base_url("myProjectController/getNewImgs"); ?>",
            success: function(imgsResults) {
                alert(imgsResults[0]);
            }

        });
    });

但不是给我第一个对象,而是给我引号(结果的第一个字符)“

这是为什么?我以 JSON 格式传递,在 AJAX 中我提到数据类型为“JSON”!

如果您需要更多说明,请告诉我!谢谢 :)

4

1 回答 1

1

我在这里很危险,但我认为你需要JSON.parse(imgResults)在你的电话回电中$ajax( . . .打电话。我猜这alert(imgResults[0])是返回你的 json 响应的第一个字符,它是一个引号。另请注意,返回的 json 是一个对象,您的警报将显示“[Object][Object]”。您将需要访问 json 的单个元素:

returnObj = JSON.parse(imgResults);
alert("object field is: " + returnObj.path); //or whatever relevant field you need to see to verify
于 2013-11-05T04:01:48.740 回答