使用存储在PHP中的数据创建所需的JSON格式


Create a desired JSON format using data stored in PHP

所以我有一堆数组,里面有传递给第三方应用程序所需的所有数据。问题是他们需要一个特定的JSON格式,而我不知道如何做到这一点。他们需要的数据格式如下:

{
   "appData" : {
      "appKey" : "blah blah",
      "synth" : {
         "synth1" : {
            "mono" : [
               {
                  "monoId" : "529",
                  "templates" : [
                     {
                        "monoSequenceMap" : [
                           {
                              "map" : {
                                 "X" : "3",
                                 "Y" : "1"
                              },
                              "position" : {
                                 "scale" : "1",
                                 "x1" : "100",
                                 "x2" : "150",
                                 "y1" : "2000",
                                 "y2" : "2500"
                              }
                           },
                           {
                              "map" : {
                                 "X" : "2",
                                 "Y" : "4"
                              },
                              "position" : {
                                 "scale" : "1",
                                 "x1" : "200",
                                 "x2" : "550",
                                 "y1" : "1000",
                                 "y2" : "1500"
                              }
                           },
                           {
                              "map" : {
                                 "X" : "3",
                                 "Y" : "3"
                              },
                              "position" : {
                                 "scale" : "1.5",
                                 "x1" : "300",
                                 "x2" : "750",
                                 "y1" : "1750",
                                 "y2" : "1800"
                              }
                           },
                           {
                              "map" : {
                                 "X" : "4",
                                 "Y" : "1"
                              },
                              "position" : {
                                 "scale" : "1.5",
                                 "x1" : "680",
                                 "x2" : "790",
                                 "y1" : "1950",
                                 "y2" : "1850"
                              }
                           }
                        ],
                        "templateId" : "01_A_19"
                     }
                  ]
               }
            ],
            "synthId" : "XXXXXXXXXX"
         }
      }
   }
}

我只想要一些关于如何将我所拥有的数据转换为JSON字符串的指针。我想我需要使用json_encode。我应该创建一个名为"appData"类的新类,然后在其中创建每个对象/数组吗?还是应该将这种格式的字符串写入文本文件?

我的问题是,我不能把所有这些物体都放在物体里。。。例如,在JSON中,synth是一个包含synth1、synth2等的对象,这些对象将具有mono,mono将是一个对象数组。。。我不知道该如何解决这个问题。。

非常感谢任何指点!

您的数组是多维的吗?类似:

$array = array(
    "data_table_1" => array(
        "item1" => "Item 1",
        "item2" => "Item 2"
    ),
    "data_table_1" => array(
        "item1" => "Item 1",
        "item2" => "Item 2"
    )
);

如果是这样的话,你所要使用的就是json_encode,这将为你完成所有的编码:

$json = @json_encode($array);

====编辑====
数组不必是多维的。即使是具有单个键=>值的数组也可以工作。只要确保您有值的密钥,这样它们就可以正确注册。