javascript - JSON 到 PHP : Obtaining the Object Array data within an Object

标签 javascript php jquery arrays json

我有两个 JavaScript 类:

function Sensor(sensorNumber, name, m, b, selected) {
    "use strict";
    this.sensorNumber = sensorNumber;
    this.name = name;
    this.m = m;
    this.b = b;
    this.selected = selected;
}

下面的 Chart 类包含上面 Sensor 类的数组、一些变量和一个 timeSpan 类:

function Chart(index, allsensors) {
    "use strict";
    this.chartName = $("#newChartName").val();
    this.chartNumber = index;
    this.sensorsArray = allsensors;
    this.time = new TimeSpan();
}

我通过 Jquery AJAX 将“图表”对象变量发送到 PHP:

function obtainChartData(chart) {
    "use strict";
    $.ajax({
        url: 'server/ExtractTelemetry.php',
        type: "POST",
        data: JSON.stringify(chart),
        success: function (msg) {
            alert(msg);
        }
    });
}

PHP 收到它,这就是我卡住的地方。我需要为传感器对象数组中的每个元素获取“this.Selected”。

<?php
    $json = file_get_contents('php://input');
    $chart = json_decode($json);
    echo $startTime = $chart->time->startSec." "; //CORRECT
    echo $endTime = $chart->time->endSec." "; //CORRECT
    echo $chartName = $chart->chartName." "; //CORRECT
    echo $chartNumber = $chart->chartNumber." "; //CORRECT

    for(...) {
    echo $allSensors = $chart->allSensors[someIndexValue]->selected; //why does this not work??
    }
?>

更新:

这是 PHP 错误输出

enter image description here

JSON 输出(缩短但应该足够的信息):

object(stdClass)#1 (4) {  
["chartName"]=>  string(7) "Chart#1"  
["chartNumber"]=>  int(1)
["sensorsArray"]=>  object(stdClass)#2 (44) {    
    ["B0"]=>    object(stdClass)#3 (5) {      
        ["sensorNumber"]=>      int(0)      
        ["name"]=>      string(10) "SRBUS(mV)"      
        ["m"]=>      string(6) "1.2811"      
        ["b"]=>      string(8) "-4.1559"      
        ["selected"]=>      bool(false)    
        }    
    ["B1"]=>    object(stdClass)#4 (5) {
        ["sensorNumber"]=>      int(1)      
        ["name"]=>      string(10) "SRBUS(mA)"      
        ["m"]=>      string(6) "0.6137"      
        ["b"]=>... 

最佳答案

json_decode 返回一个 stdObject。

可以访问该对象的属性

$myObject = json_decode($myString);

$myObject->myProperty;

如果你想要一个从 json_decode 返回的数组传递第二个参数 'true'

$myArray = json_decode($myString, true);

关于javascript - JSON 到 PHP : Obtaining the Object Array data within an Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32712088/

相关文章:

javascript - 获取带有另一个元素的 DIV 的 HTML

javascript - React - 设置状态以显示表单中验证错误的消息导致 :Cannot read property 'setState' of undefined - Why?

javascript - Emberjs,数据源,twitter bootstrap typeahead

PHP - 在同一个 try-catch 中包装一个变量 block

php - Laravel,与多个模型的多对多关系

jquery - 使用 jQuery 选择器选择一个元素,无论 ID 是什么

javascript - shift 键在另一个键被按下后被忽略,糟糕的 shift 键。我如何检测它何时发布?

javascript - 不带导出的 TypeScript 声明的异步加载

javascript - 将所有 View 一次性发送给客户端 - SPA 是否有效?

php - 服务器端字体大小调整