2016-09-14 7 views
0

У меня есть этот выход после json-декодирования.Parsing JSON Array PHP

Array 
     (
     [CJ] => stdClass Object 
      (
       [CID] => 1234 
       [TYPE] => type2222 
       [CURRENCY] => GBP 
       [OID] => 100000037 
       [DISCOUNT] => 0.00 
       [PRODUCTLIST] => Array 
        (
        [0] => stdClass Object 
         (
         [ITEM] => TEST_PRO_02-White-M 
         [QTY] => 2 
         [AMT] => 80.00 
         [DCNT] => 0.00 
         ) 

        [1] => stdClass Object 
         (
         [ITEM] => TEST_PRO_02-White-M 
         [QTY] => 2 
         [AMT] => 0.00 
         [DCNT] => 0.00 
        ) 

        [2] => stdClass Object 
         (
         [ITEM] => TEST_PRO_01-Pink 
         [QTY] => 1 
         [AMT] => 135.00 
         [DCNT] => 0.00 
        ) 

        [3] => stdClass Object 
         (
         [ITEM] => TEST_PRO_01-Pink 
         [QTY] => 1 
         [AMT] => 0.00 
         [DCNT] => 0.00 
        ) 

       ) 

     ) 

    ) 

Мне нужно создать строку для ввода значений в iframe. это не дает мне результата , но если я ставлю кавычки на строку json, это даст мне требуемый результат.

$x=0; 
foreach ($obj->CJ->PRODUCTLIST as $productlist){ 


$item=$productlist->ITEM; 
$amount=$productlist->AMT; 
$qty=$productlist->QTY; 
$cj_string.="ITEM".$x."=$item&AMT".$x."=$amount&QTY".$x."=$qty&"; 
$x++;} 

это дает мне PHP nonobject разбора ошибок. Как получить значения из ProductList в виде

item1=value&QTY1=value&AMT1=value&item2=value&QTY2=value&AMT2=value 

ответ

1

решение для Вашего вопроса будет это,

$cjhelper = '{"CJ":{"CID":"1234","TYPE":"type2222","CURRENCY":"GBP","OID":"100000045","DISCOUNT":"0.00","PRODUCTLIST":[{"ITEM":"TEST_PRO_01-Pink","QTY":"1","AMT":"135.00","DCNT":"0.00"},{"ITEM":"TEST_PRO_01-Pink","QTY":"1","AMT":"0.00","DCNT":"0.00"}]}}'; 
$obj = json_decode($cjhelper); 

$x=1; 
$cj_string = ""; 
    foreach ($obj->CJ->PRODUCTLIST as $productlist){ 
    $item=$productlist->ITEM; 
    $amount=$productlist->AMT; 
    $qty=$productlist->QTY; 
     if($x!=1) $cj_string.= "&"; 
    $cj_string.="ITEM".$x."=$item&AMT".$x."=$amount&QTY".$x."=$qty"; 
    $x++; 
    } 

echo $cj_string; 

Ваш ожидаемый результат будет

ITEM1=TEST_PRO_01-Pink&AMT1=135.00&QTY1=1&ITEM2=TEST_PRO_01-Pink&AMT2=0.00&QTY2=1 
+0

Я уже пробовал, это дает мне ошибку разборки –

+0

вы можете разместить строку json здесь – Sasikumar

+0

cj-helper {"CJ": {"CID": "1234", "TYPE": "type2222", "CURRENCY": "GBP", "OID": "100000045", "СКИДКА": "0,00", "ProductList": [{ "ЭЛЕМЕНТ": "Т EST_PRO_01-розовый " "КОЛ": "1", "АМТ": "135,00", "DCNT": "0,00"}, { "ITEM": "TEST_PRO_01-розовый", "КОЛ": "1"," AMT ":" 0.00 "," DCNT ":" 0.00 "}]}} –