2012-05-08 44 views
3

我需要从PHP构建一些JSON。在JSON的结构是小于琐碎:使用php构建复杂的JSON

{ 

    "new" : { 
     "checkpoints" : 
      [ 
       { 
        "id" : "businessidea", 
        "name" : "business idea", 
        "purpose" : "Form a business idea", 
        "customer" : 
         { "questions" : 
          [ 

           { "questionid" : "id1", "questiontitle": "Evaluate size of the market, likely growth vectors and estimate addressable size.", "answers" : 
            [ 
             {"answertext" : "an answer here", "answerlink": "", "answers": [ 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"} 
             ]}, 
             {"answertext" : "an answer here", "answerlink": "", "answers": [ 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"} 
             ]}, 
             {"answertext" : "an answer here", "answerlink": "", "answers": [ 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"} 
             ]} 
            ] 
           }, 
           { "questionid" : "id2","questiontitle": "Define the needs of the customers and the value we will deliver to the customers - customer pain and our solution", "answers" : 
            [ 
             {"answertext" : "an answer here", "answerlink": "", "answers": [ 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"} 
             ]}, 
             {"answertext" : "an answer here", "answerlink": "", "answers": [ 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"} 
             ]}, 
             {"answertext" : "an answer here", "answerlink": "", "answers": [ 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"} 
             ]} 
            ] 
           }, 
           { "questionid" : "id3","questiontitle": "Define the competitor landscape" , "answers" : 
            [ 
             {"answertext" : "an answer here", "answerlink": "", "answers": [ 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"} 
             ]}, 
             {"answertext" : "an answer here", "answerlink": "", "answers": [ 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"} 
             ]}, 
             {"answertext" : "an answer here", "answerlink": "", "answers": [ 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"}, 
              {"answertext": "answer text here", "answerlink": "http://google.com"} 
             ]} 
            ]} 
          ] 
         }, 

什么是实现这一目标的最佳途径?我是否通过使用大量字符串连接来构建这个json的路线,或者使用内置JSON工具的PHP是否可行?

回答

6

难道我用大量的字符串连接的

号切勿串糖化共筑JSON下井建设这个JSON的路线。

还是可行的使用PHP的内置JSON工具?

是。

在PHP中构建数据结构。具体的做法取决于你从哪里获取数据。

完成后,通过json_encode

+0

使用字符串创建JSON并不是最好的方法,您将强制PHP评估字符串以了解数据的类型,这是一个关键,那就是数据。 使用数组不需要做eval,因为内部数组知道值的数据类型 –

+0

好吧,我如何在php中构建数据结构?我从数据库调用中获取数据。 –

+0

通过创建和分配'Array's。 – Quentin

1
<?php echo json_encode($yourArray); ?> 
0

使用json_decode,将true作为第二个参数添加,如果您希望它作为数组。

2

从来没有使用字符串函数来构建JSON!

创建一个数组(或stdClass对象)和json_encode()它。

+0

除非您为没有好语言的语言编写JSON序列化程序,否则没有理由这样做。 – ThiefMaster

+0

经常说永远。解决问题的一些方法是错误的。 (以及边缘案例,比如“我们昨天需要它,没有时间将PHP升级到远程现代化的东西”应该被尖叫起来并尽快修复,黑客被认为是黑客)。 – Quentin