【问题标题】:Convert PHP response Object to Javascript object将 PHP 响应对象转换为 Javascript 对象
【发布时间】:2019-03-15 09:22:18
【问题描述】:

我试图调用 javascript 到 PHP 服务。然后我得到该服务的响应。 但是,现在我需要将该响应对象转换为 JSON 对象。

我的 PHP 服务喜欢,

if ( isset($_POST['S3']) && ($_POST['S3'] == 'true' || $_POST['S3'] == 'TRUE')){
$result = $client->detectLabels([
    'Image' => [ 
        'S3Object' => [
            'Bucket' => 'spiralup',
            'Name' => ''.$filename
        ],
    ],
    'MaxLabels' => 10,
    'MinConfidence' => 60
]);
}else {
    $result = $client->detectLabels([
        'Image' => [ 
            'Bytes' => $contents
        ],
        'MaxLabels' => 10,
        'MinConfidence' => 60
    ]);
}
//echo($result);

//echo $result->getPath('Labels/Name');
//> ACTIVE

// Convert the Model to a plain array
var_export($result->toArray()['Labels']);

我的 Javascript 代码,

var form = new FormData();
form.append("imagePath", "D:\\xampp\\htdocs\\webcam\\webcamImage\\20181009091628.jpg");
form.append("S3", "false");

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "http://localhost:90/AWS_Test.php?Content-Type=application/json",
  "method": "POST",
  "headers": {},
  "processData": false,
  "contentType": false,
  "mimeType": "multipart/form-data",
  "data": form
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

这里,我的示例响应对象。

      array (
        0 => 
        array (
          'Name' => 'Sathish',
          'Id' => 91,
        ),
        1 => 
        array (
          'Name' => 'Anish',
          'Id' => 92,
        ),
        2 => 
        array (
          'Name' => 'Anil',
          'Id' => 99,
        ),
        3 => 
        array (
          'Name' => 'Chennai',
          'Id' => 69,
        ),
        4 => 
        array (
          'Name' => 'Beard',
          'Id' => 64,
        ),
      )

但我需要像这样跟随,

[   {
        "0":[{"Name" : "Sathish", "Id" : 91}], 
        "1":[{"Name" : "Anish", "Id" : 92}], 
        "2":[{"Name" : "Anil", "Id" : 99}], 
        "3":[{"Name" : "Chennai", "Id" : 69}], 
        "4":[{"Name" : "Beard", "Id" : 64}]
    }
]

提前致谢,如果您投反对票,请告诉我原因。

【问题讨论】:

  • 预期的输出不是有效的 json,你确定这是你想要的吗?
  • 您显示的预期输出实际上不是有效的 JSON。也许您只是为了说明而显示了数组索引,我不知道。但无论如何要将 PHP 对象或数组转换为(有效的)JSON,您只需要使用 json_encode() 函数。一个简单的谷歌搜索会告诉你。 (P.S.如果你想知道人们投票给你的可能原因,请阅读stackoverflow.com/help/privileges/vote-down
  • 那么向我们展示您的尝试,并引用错误消息!
  • it throwing some error 这是什么?
  • 我们无法猜测您编写了什么代码、您的错误是什么或发生在哪里。我们无法读取您的磁盘、屏幕……或您的思想。请帮助我们通过提供有关您的问题的准确、详细和具体的信息来帮助您。你不能指望机械师只说“它坏了”就修理你的车,或者医生只告诉他“我感觉不舒服”就可以诊断你的病,尤其是如果他们甚至看不到车或此人。代码也是一样。我不明白为什么你会认为说“抛出一些错误”实际上可以让任何人帮助你?

标签: javascript php arrays dom


【解决方案1】:

var_exportjson_encode 交换就可以了:

json_encode($result->toArray()['Labels']);

文档:http://php.net/manual/en/function.json-encode.php

【讨论】:

    【解决方案2】:

    为什么不使用这个模型?

    $arr=数组( 大批( '名称'=>'test1', 'id'=>'1', ), 大批( '名称'=>'test2', 'id'=>'2', ), 大批( '名称'=>'test3', 'id'=>'3', ), ); 回声 json_encode($arr); ///[{"name":"test1","id":"1"},{"name":"test2","id":"2"},{"name":"test3"," id":"3"}]

    【讨论】:

      猜你喜欢
      • 2017-10-17
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 2017-01-14
      • 1970-01-01
      相关资源
      最近更新 更多