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

时间:2015-02-28 03:34:52

标签: php json data-structures

所以我有一堆数组,其中包含我需要传递给第三方应用程序的所有数据。问题是他们需要特定的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合成器中是一个包含synth1,synth2等的对象,这些对象又将具有单声道这将是一系列对象......我不知道如何解决这个问题......

非常感谢任何指针!

1 个答案:

答案 0 :(得分:0)

你的数组是多维的吗?像:

$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);

====编辑====
数组不必是多维的。即使是具有单个键的数组=>价值会起作用。请确保您拥有值的键,以便他们正确注册。