我是 php json 對象的新手。我正在嘗試從我的數(shù)據(jù)庫表數(shù)據(jù)創(chuàng)建以下 json 格式。Visits基本上是一個對象。但是我的對象知識非常有限,所以我陷入了困境。"visits": { "order_1": { "location": { "name": "6800 Cambie", "lat": 49.227107, "lng": -123.1163085 }, "start": "9:00", "end": "12:00", "duration": 10, "load": 1, "type": "A", "priority": "high" }}但我得到的是 json 格式以下。這是錯誤的。{ "visits": [ { "order_1": { "location": { "name": "21 Marara Court, ALBANY CREEK QLD 4035", "lat": "-37.7044", "lng": "145.1006" } } }, { "order_2": { "location": { "name": "Unit 7, 19 O'Connell Street, KANGAROO POINT QLD 4169", "lat": "-37.6389", "lng": "145.1950" } } }, ], "fleet": { "vehicle_1": { "start_location": { "id": "depot", "name": "23 Moverly Rd", "lat": -33.9356141, "lng": 151.2425993 }, "end_location": { "id": "depot", "name": "23 Moverly Rd", "lat": -33.9356141, "lng": 151.2425993 } } },}問題出在"visits": [陣列上。但我需要對象。所以我的 php 代碼如下:foreach ($orders as $value) { $orders2[] = array( "order_$i"=> array( "location"=> array( "name"=> $value['address'], "lat"=> $value['lat'], "lng"=> $value['long'] ), ), );}$data = array( "visits" => $orders2, "fleet"=> array( "vehicle_1"=> array( "start_location"=> array( "id"=> "depot", "name"=> "23 Moverly Rd", "lat"=> -33.9356141, "lng"=> 151.2425993 ), "end_location"=> array( "id"=> "depot", "name"=> "23 Moverly Rd", "lat"=> -33.9356141, "lng"=> 151.2425993 ), ) ),);如果有人能給我任何想法會更好。謝謝 :)
1 回答

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗 獲得超4個贊
要獲取對象,json_encode您必須使用自定義數(shù)組鍵。
嘗試這個:
foreach ($orders as $value) {
$orders2["order_$i"] = array(
"location"=> array(
"name"=> $value['address'],
"lat"=> $value['lat'],
"lng"=> $value['long']
),
);
}
只是為了完整性:
也可以使用JSON_FORCE_OBJECT中的選項json_encode或者直接使用aStdClass強(qiáng)制獲取json對象。但是在您的情況下,結(jié)構(gòu)無論如何都是錯誤的,因此上面的代碼應(yīng)該可以正常工作。
- 1 回答
- 0 關(guān)注
- 119 瀏覽
添加回答
舉報
0/150
提交
取消