我用這個方法來產生一通一通:
如何產生2個不同json_encodes
public function setJSON($JSON) { if(json_decode($JSON) !== false) { $this->JSON = $JSON; return true; } $this->sError = 'This is not a JSON string.'; return false; }我把這種方法生成的通:
$pass->setJSON('{ "passTypeIdentifier": "'.$passTypeID.'", "formatVersion": 1, .............. "barcode": { "altText" : "'.$alt.'", "format" : "PKBarcodeFormatPDF417", "message": "Member-Card", "messageEncoding": "iso-8859-1", "changeMessage" : "This pass now has altText %@ !" }, "locations" : [ { "longitude" : 104.89529371261597, "latitude" : 11.576150037278605, "relevantText": "CamMob (dis. 1%)" }, ..................... ] }');但現在我不寫靜態的位置,我也得到那些來自數據庫的數據通過:
$query5 = mysql_query("select * from company");
while ($row5 = mysql_fetch_array($query5)){
$companyName = $row5['relevantTextName'];
$discount = $row5['relevantTextDiscount'];
$long = $row5['longitute'];
$lat = $row5['latitute'];
$link = $row5['link'];
$location['locations'][] = array("longitute" => $long, "latitute" => $lat, "relevantText" => $companyName." (" . $discount. "%)");
}
$jsonString = json_encode($location) ;
error_log("Locations: ".$jsonString,0);
$pass->setJSON($jsonString);
$pass->setJSON('{
"passTypeIdentifier": "'.$passTypeID.'",
"barcode": {
"altText" : "'.$alt.'",
"format" : "PKBarcodeFormatPDF417",
"message": "Member-Card",
"messageEncoding": "iso-8859-1",
"changeMessage" : "This pass now has altText %@ !"
}
}');</pre>
當我測試更新通行證時沒有錯誤,但我看不到以前像鎖定屏幕上的通行證。因此這意味着我尚未將這些位置包含在通行證中。我應該改變什麼?它是setJSON方法的問題嗎?如果我喜歡這樣,我怎麼能把這兩個jsons結合在一起?
多少地方,你呢?請記住,只有前10個會顯示。另外,如果您想驗證位置是否被添加到JSON中,您可以將.pkpass文件的擴展名更改爲.zip以查看您的代碼正在生成的內容,或者將JSON寫入php日誌。 – PassKit 2013-05-10 01:40:22
如果我從數據庫中選擇位置,如何通過編碼將它們添加到已創建的通道中? – malinchhan 2013-05-10 01:58:11
我不知道如何結合不同的encode_json! – malinchhan 2013-05-10 02:04:58