将数据集生成为Json,而不是一个大的混合Json


Generate the set of data into Json instead of one big mixed Json

我如何创建一个Json与许多小数据集由逗号分隔?

而不是一个大Json由双花括号包围?

我确实收到一个Json和php我使用foreach来循环它,使大量的数据处理在里面。

然后生成一个新的Json,只是为了避免客户端的数据处理将被angularjs ng-repeat处理。

所有json数据混合成一个大json集(在双花括号内)

我的目标是把数据分成小的数据集。

可以使用NrType属性。在此脚本中,NrType接收最后一个属性,并且只有最后接收到的属性可用。

//The php script
    $arr = json_decode($returnedJson); //The original json to be pre-processed
    $processedData = "[]";
    $processedJson = json_decode($processedData,true);
    foreach($arr as $key=>$value) { 
        foreach($value as $vkey=>$vvalue) {             
            if( $value[$i]->NrType == 1 ) {
                $VlMIni     = $value[$i]->QttyInitial;
                $VlMSub     = $value[$i]->QttyPeriod + $value[$i]->QttyRealAfter;
                $VlMRec     = $value[$i]->RealValue;
                $VlMTotal   += $VlMesRece;
                //much more data processing going on here ...
            } elseif( $value[$i]->NrType == 2 ) { 
            .
            .
            .
            //and much more data processing going on here ...
        }
    }
    //simple data atribution here
    $processedJson['labelDesIni']       = 'Instruments';
    $processedJson['labelValueMIni']    = $lblVlMIni;   
    $processedJson['labelValuePIni']    = $lblVlPlIni; 
    $processedJson['labelValueAIni']    = $lblVlAIni;   
    $processedJson['labelValuePAIni']   = $lblVlPAIni;  
    $processedJson['labelValuePercInic']    = $lblVlPercInic;   
    $processedJson['labelValuePerc2Inic']   = $lblVlPerc2Inic; 
    //much more data atribution ...
    echo json_encode($processedJson); //the new hgenerated Json
生成的Json:
{
    labelDesI: "Inspection",
    labelValueMI: "2357",
    labelValuePlI: "3914066",
    labelValueAI: "1389406",
    labelValuePAI: "2431425",
    labelValuePercI: 57.143691456656,
    labelValuePerc2I: 35.497766261478,
    labelDesR: "Instruments",
    labelValueMR: "734.54",
    labelValuePR: "819.14",
    labelValueAR: "660.05",
    labelValuePAR: "877.94",
    labelValuePercR: 80.087,
    labelValuePerc2R: 44.739,
    labelDesAcfi: "Fiscalização",
    labelValueMAcfi: "343",
    labelValuePlAcfi: "29907",
    labelValueAAcfi: "16718",
    labelValuePAAcfi: "16493",
    labelValuePercAcfi: 101.36421512157,
    labelValuePerc2Acfi: 55.899956531916,
    labelDesT: "Totals",
    labelValueMT: 365.59,
    labelValuePlT: 547.62,
    labelValueAnT: 909.63,
    labelValuePAnT: 957.63,
    labelValuePercT: 22949,
    labelValuePerc2T: 25065
}

期望的格式是:

{
    label: "Inspection",
    labelValue1: "2357",
    labelValue2: "3914066",
    labelValue3: "1389406",
    labelValue4: "2431425",
    labelValue5: 57.1456656,
    labelValue6: 35.4961478
},
{
    labelDesR: "Instruments",
    labelValue1: "734.54",
    labelValue2: "819.14",
    labelValue3: "660.05",
    labelValue4: "877.94",
    labelValue5: 80.087,
    labelValue6: 44.739
},
{
    labelDesT: "Totals",
    labelValue1: 365.59,
    labelValue2: 547.62,
    labelValue3: 909.63,
    labelValue4: 957.63,
    labelValue5: 22949,
    labelValue6: 25065
}

提前致谢

分别生成所有对象,创建这些对象的数组并json_encode数组:

$processedJsonElement[] = ['labelDesT' => "Totals", 'labelValue1' => $whatTheValueIs, . . .];

并将其添加到主对象:

$processedJson[] = $processedJsonElement;

为您想要表示的每个Json部分执行此操作。不确定你是如何构建你的Foreach循环,因为你的代码不匹配输出,但无论你的结构是什么,你将在调用json_encode时输出。

基本上,您需要构建foreach循环,以便能够将您希望表示为json对象数组的对象划分。