在php脚本中传递的JSON对象

问题描述:

我有一个PHP脚本,并且有一些值的JSON对象正在PHP get函数中传递。我尝试过不同的方式来解码JSON,但失败了。 我已经尝试的代码是:在php脚本中传递的JSON对象

$get_order_info = $_GET['orderInfo']; 
$order_json = json_decode($get_order_info, true); 

echo $order_json->{'mealsInfo'}; 

JSON字符串是:

{ 
    "mealsInfo" : [ 
    { 
     "DrinkSize" : 1, 
     "MealQuantity" : 1, 
     "MealId" : "57", 
     "addons" : [ 
     { 
      "addOnID" : 1, 
      "addonTitle" : "spicy" 
     }, 
     { 
      "addOnID" : 3, 
      "addonTitle" : "Thin Base" 
     } 
     ], 
     "FriesSize" : 2 
    } 
    ], 
    "TransactionID" : "56", 
    "OrerType" : "PickUp", 
    "frenchiseInfo" : { 
    "storeName" : "Dubai Downtown Franchise", 
    "OrderCollectionTime" : "06:12:50 PM", 
    "FranchiseId" : "4" 
    }, 
    "customerinfo" : { 
    "Instructions" : "Test instruction", 
    "CustomerName’" : "Talat", 
    "Area" : "al Riga", 
    "City" : "Dubai", 
    "Phone" : "0559467800", 
    "Email" : "[email protected]", 
    "Address" : "al nouf tower" 
    }, 
    "status" : "pending", 
    "totalPrice" : 51 
} 

有人可以帮我把它以正确的方式进行解码? 在此先感谢!

+0

var_dump($ order_json)没有给出任何索引时的输出是什么? – IshaS

+0

你得到的错误是什么echo $ order_json - > {'mealsInfo'}; – IshaS

您正在将true作为第二个参数传递给json_decode,它将返回数组而不是对象。试着用 -

$order_json = json_decode($get_order_info, true); 

echo $order_json['mealsInfo'][0]['DrinkSize']; 
+0

它不能正常工作给我这个错误: 注意:数组到字符串转换在C:\ xampp \ htdocs \ learning \ service \ submit_new_order.php 13行 Array – Talib

+0

对不起。 '$ order_json ['mealsInfo']'是一个嵌套数组的数组。检查更新。 –

+0

@ b0s3当为true时,它返回对象 – IshaS

$get_order_info = $_POST['orderInfo']; 
$order_json = json_decode($get_order_info, true); 

echo $order_json->{'mealsInfo'}; 

试试这个。

$order_json = json_decode($get_order_info, true); 

var_dump($order_json->{'mealsInfo'});