2016-04-06 15 views
1

Benim php fonksiyonuJson encocde Mix dizideki tüm sadece

$req = json_encode($questionData); sonra diğer işleve bu geçti ve $res = json_decode($req);

deşifre kullanarak ben json dönüştürülen dizisi döndürür dönüştürülen Dizi biçimindeki tüm dizinleri içeren bir dizi döndür. İstek dizisinde bile $ questionData bazı dizinlerde nesneye sahiptir, bunlar jason kodlamadan sonra kodları kodlamak ve kodları çözmek için nesnenin içinde olmalıdır.

Arrya ve nesnenin veri karması içeren aynı dizi almak istiyorum. Aşağıda

istek dizidir

Array 
(
    [success] => 1 
    [pagename] => RC1_PGR_Questions 
    [result] => Array 
     (
      [CurrentInsuranceStatus] => Array 
       (
        [QuestionData] => Platform_Form_Page_Question Object 
         (
          [_answer] => 
          [_answerOptions] => Array 
           (
            [0] => Platform_Form_Page_Question_AnswerOption Object 
             (
              [_answerKey] => 340280 
              [_hideAnswer] => 1 
              [_order] => 110 
              [_promptText] => Yes 
              [_value] => Y 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [1] => Platform_Form_Page_Question_AnswerOption Object 
             (
              [_answerKey] => 340290 
              [_hideAnswer] => 
              [_order] => 120 
              [_promptText] => Yes, on parent's policy 
              [_value] => Parents 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [2] => Platform_Form_Page_Question_AnswerOption Object 
             (
              [_answerKey] => 340300 
              [_hideAnswer] => 
              [_order] => 130 
              [_promptText] => Yes, insured through employer 
              [_value] => Company 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [3] => Platform_Form_Page_Question_AnswerOption Object 
             (
              [_answerKey] => 340310 
              [_hideAnswer] => 
              [_order] => 140 
              [_promptText] => No, policy lapsed/expired 
              [_value] => Lapsed 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [4] => Platform_Form_Page_Question_AnswerOption Object 
             (
              [_answerKey] => 340320 
              [_hideAnswer] => 
              [_order] => 150 
              [_promptText] => No, never been insured 
              [_value] => Never 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [5] => Platform_Form_Page_Question_AnswerOption Object 
             (
              [_answerKey] => 340330 
              [_hideAnswer] => 
              [_order] => 160 
              [_promptText] => No, I didn't have a vehicle to insure 
              [_value] => First 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [6] => Platform_Form_Page_Question_AnswerOption Object 
             (
              [_answerKey] => 340340 
              [_hideAnswer] => 
              [_order] => 170 
              [_promptText] => No, been deployed/overseas in the military 
              [_value] => Military 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [7] => Platform_Form_Page_Question_AnswerOption Object 
             (
              [_answerKey] => 340350 
              [_hideAnswer] => 
              [_order] => 180 
              [_promptText] => No, other reason 
              [_value] => Other 
              [_errorLog] => Array 
               (
               ) 

             ) 

           ) 

          [_answersDivID] => html_CurrentInsuranceStatus 
          [_phoneAreaField] => 
          [_attributeName] => CurrentInsuranceStatus 
          [_criteriaBasedQuestion] => 1 
          [_dateField] => 
          [_eventHandler] => 
          [_fieldType] => select 
          [_hideQuestion] => 1 
          [_monthField] => 
          [_phoneNumberField] => 
          [_order] => 10000 
          [_pageAttributes] => stdClass Object 
           (
            [additionalLabel] => 
            [answerStyle] => 
            [colNum] => 
            [colWidth] => 
            [cssclass] => 
            [defaultValue] => 
            [isMultiSelect] => 
            [maxLength] => 
            [min] => 
            [questionSkinStyle] => 
            [toolTip] => 
           ) 

          [_phonePreFixField] => 
          [_questionDivID] => prompt_CurrentInsuranceStatus 
          [_questionKey] => 7169010 
          [_required] => 1 
          [_text] => Current insurance status 
          [_yearField] => 
          [_errorLog] => Array 
           (
           ) 

         ) 

       ) 

     ) 

) 

Tepki dizisi yüzden

stdClass Object 
(
    [success] => 1 
    [pagename] => RC1_PGR_Questions 
    [result] => stdClass Object 
     (
      [CurrentInsuranceStatus] => stdClass Object 
       (
        [QuestionData] => stdClass Object 
         (
          [_answer] => 
          [_answerOptions] => Array 
           (
            [0] => stdClass Object 
             (
              [_answerKey] => 340280 
              [_hideAnswer] => 1 
              [_order] => 110 
              [_promptText] => Yes 
              [_value] => Y 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [1] => stdClass Object 
             (
              [_answerKey] => 340290 
              [_hideAnswer] => 
              [_order] => 120 
              [_promptText] => Yes, on parent's policy 
              [_value] => Parents 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [2] => stdClass Object 
             (
              [_answerKey] => 340300 
              [_hideAnswer] => 
              [_order] => 130 
              [_promptText] => Yes, insured through employer 
              [_value] => Company 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [3] => stdClass Object 
             (
              [_answerKey] => 340310 
              [_hideAnswer] => 
              [_order] => 140 
              [_promptText] => No, policy lapsed/expired 
              [_value] => Lapsed 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [4] => stdClass Object 
             (
              [_answerKey] => 340320 
              [_hideAnswer] => 
              [_order] => 150 
              [_promptText] => No, never been insured 
              [_value] => Never 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [5] => stdClass Object 
             (
              [_answerKey] => 340330 
              [_hideAnswer] => 
              [_order] => 160 
              [_promptText] => No, I didn't have a vehicle to insure 
              [_value] => First 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [6] => stdClass Object 
             (
              [_answerKey] => 340340 
              [_hideAnswer] => 
              [_order] => 170 
              [_promptText] => No, been deployed/overseas in the military 
              [_value] => Military 
              [_errorLog] => Array 
               (
               ) 

             ) 

            [7] => stdClass Object 
             (
              [_answerKey] => 340350 
              [_hideAnswer] => 
              [_order] => 180 
              [_promptText] => No, other reason 
              [_value] => Other 
              [_errorLog] => Array 
               (
               ) 

             ) 

           ) 

          [_answersDivID] => html_CurrentInsuranceStatus 
          [_phoneAreaField] => 
          [_attributeName] => CurrentInsuranceStatus 
          [_criteriaBasedQuestion] => 1 
          [_dateField] => 
          [_eventHandler] => 
          [_fieldType] => select 
          [_hideQuestion] => 1 
          [_monthField] => 
          [_phoneNumberField] => 
          [_order] => 10000 
          [_pageAttributes] => stdClass Object 
           (
            [additionalLabel] => 
            [answerStyle] => 
            [colNum] => 
            [colWidth] => 
            [cssclass] => 
            [defaultValue] => 
            [isMultiSelect] => 
            [maxLength] => 
            [min] => 
            [questionSkinStyle] => 
            [toolTip] => 
           ) 

          [_phonePreFixField] => 
          [_questionDivID] => prompt_CurrentInsuranceStatus 
          [_questionKey] => 7169010 
          [_required] => 1 
          [_text] => Current insurance status 
          [_yearField] => 
          [_errorLog] => Array 
           (
           ) 

         ) 

       ) 



     ) 

) 
+0

json_decode, param 2 (assoc) ayarlanmadığında "{...}" tarafından bildirilen JSON-Object üzerinde assoc dizisi döndürdüğünü hiç görmedi - neden json_decode (json_encode()) '? - json_decode ($ req, false) ' – UnskilledFreak

+0

öğesini deneyin. Herzaman varsayılan yanlıştır, Ya dizimde veya Object'te tüm indeksleri alırım. İstediğim gibi istiyorum. –

+0

öyleyse json ayrıştırmadan sonra _answerOptions içindeki anahtarlar örneğin Platform_Form_Page_Question_AnswerOption olarak döndürülür? Bu mümkün değil düşünüyorum json sadece bir (stdclass) nesne veya int endeksli dizi kullanışlı olabilir – UnskilledFreak

cevap

0

i gerçekten ben sadece aşağıdaki gibi JSON işlevlerine alternatif olarak serialize ve unserialize kullanır yapmak istediğinizi farkettiğimde çalışan örnek:

serialize() ve unserialize(), JSON tanımlama/kodlama kadar hızlı değildir (bunu asla test etmedim/kıyaslamadım) ancak nesne adlarını kendi içinde saklar. Yöntemlerle sınıflar/nesneler için işe yarayıp yaramadığını bilmiyorum, ancak yukarıdaki verileriniz işe yarayacaktır. Ayrıca çok boyutlu yapı ile de.

+0

Ana dizimde nesneler var, nesneler bir dizi verir mi. –

+0

u İstediğiniz gibi karıştırabilir, dizideki nesnede diziye veya başka bir nesneye benzer nesne, nesne, dizi, nesne çalışsa bile – UnskilledFreak

İlgili konular