数组格式为JSON格式

时间:2015-09-25 09:54:22

标签: javascript php jquery cakephp

使用此数组值将此更改为JSON格式。

    $prices = array("250", "350", "400", "678", "800", "1000");
    var opt = {
    milestones: {
    1: {
         mlPos: 250, ---> (set $price value)
         mlId: false,
         mlClass: 'bi-custom',
         mlDim: '200%',
         mlLabel: 'Milestone one',
         mlLabelVis: 'hover',
         mlHoverRange: 15,
         mlLineWidth: 1
       },
    2: {
        mlPos: 350, ---> (set $price value)
        mlId: false,
        mlClass: 'bi-custom',
        mlDim: '200%',
        mlLabel: 'Milestone two',
        mlLabelVis: 'hover',
        mlHoverRange: 15,
        mlLineWidth: 1
     },
     3: {
       mlPos: 400, ---> (set $price value)
       mlId: false,
       mlClass: 'bi-custom',
       mlDim: '200%',
       mlLabel: 'Milestone one',
       mlLabelVis: 'hover',
       mlHoverRange: 15,
       mlLineWidth: 1
     },
  4: {
      mlPos: 678,---> (set $price value)
      mlId: false,
      mlClass: 'bi-custom',
      mlDim: '200%',
      mlLabel: 'Milestone two',
      mlLabelVis: 'hover',
      mlHoverRange: 15,
      mlLineWidth: 1
    },
 5: {
     mlPos: 800,---> (set $price value)
     mlId: false,
     mlClass: 'bi-custom',
     mlDim: '200%',
     mlLabel: 'Milestone two',
     mlLabelVis: 'hover',
     mlHoverRange: 15,
     mlLineWidth: 1
   }
 }
};

我们有数组格式$price的php变量转换为javascript变量,就像这个json格式一样,问题不是将php变量转换为javascript变量问题只是将php数组转换为json格式,如上格式。 / p>

任何人都请帮忙

谢谢。

3 个答案:

答案 0 :(得分:1)

在使用json_encode将数组转换为对象之前,您还可以使用JSON_FORCE_OBJECT选项:

$prices = array( "250", "350", "400", "678", "800", "1000" );

$row = [
    'mlPos'         => null,
    'mlId'          => false,
    'mlClass'       => 'bi-custom',
    'mlDim'         => '200%',
    'mlLabel'       => 'Milestone two',
    'mlLabelVis'    => 'hover',
    'mlHoverRange'  => 15,
    'mlLineWidth'   => 1
];

$rows = [];
foreach( $prices as $price ) {
    $rows[] = (object) array_replace( $row, [ 'mlPos' => $price ] );
}

$opt = [ 'milestones' => (object) $rows ];


echo json_encode( $opt,  JSON_FORCE_OBJECT );

// output {"milestones":{"0":{"mlPos":"250","mlId":false,"mlClass":"bi-custom", ...

答案 1 :(得分:0)

请提及您在json中需要的预期格式以及您需要转换为json的输入。

JSON_PRETTY_PRINT

以上将满足您的需求。但是为了提供答案,请清楚解释。

我认为你也使用CakePHP 3.0?

http://php.net/json_encode

您可以从那里获得答案,或在实施前使用此链接,

http://www.dyn-web.com/tutorials/php-js/json/array.php

请准确地说明你的问题。

答案 2 :(得分:-3)

试试这个:

json_encode在php>中可用5.2.0:

echojson_encode($row);