JSON 排版成功,報名資料為什麼還是匯不進去?

市集報名資料可以正常排版,卻因欄位型別被退回?用一筆自擬資料核對代碼、數量、是否用電與日期,說明長編號、空值和試匯入時要注意的地方。

JSON 排版成功,報名資料為什麼還是匯不進去?

排版成功後,還要對照收件規格

JSON 排版成功,報名資料卻被退回,我會先看收件規格,不會繼續換縮排。能排版只表示語法可讀,攤位代碼、數量和日期仍可能不符合對方要求。尤其錯誤寫著「欄位型別不符」時,要核對的是欄位名稱、型別和實際內容,改成四格縮排也不會解決。下面用一筆自擬的社區二手市集報名資料練習。

本例約定:攤位代碼是三位文字,椅子數量是整數,是否用電是布林值,活動日期用年-月-日文字,報名編號存為文字,備註接受文字或 null。這些是教學設定,不是任何平臺的正式匯入格式。換一套系統,欄位名稱與規則都可能不同。

向收件人索取一份可接受的範例,並確認最外層要一個物件還是一份陣列。也要問清楚必填欄位、空值寫法與重複匯入的處理方式。不要只照畫面上的中文標籤自行翻譯鍵名,因為 chairs 和 chair_count 對讀者意思相近,對接收程式未必是同一欄。

六個欄位,有五個要依規格修正

假設紙本報名表已確認為第007號攤位、借兩張椅子、不用電,活動日期是2026年10月18日;報名編號每一位也已與原始名單核對。以下右欄依這些已知資料整理,沒有根據「看起來應該是」補值。備註尚無內容,按本例約定保留 null。

左欄有五個欄位不符合本例規格,但仍是語法有效的 JSON。表格的引號不能省略:"2" 是文字、2 是數字;"false" 是文字、false 才是要求的布林值。格式化工具會保留這些值,不會替你猜報名者要不要用電。

那把7補成"007"就好了嗎?本例可以,是因為已有紙本依據。若手上只剩數字7,連原代碼長度都不確定,我會先回查,不自行補兩個零。椅子數量也一樣,文字能轉成數字不代表內容已確認。原值若寫"兩張或三張",還是得向報名者問清楚數量。

自擬市集資料:原值與依約定規格整理後的值
欄位收到的值核對後的值
booth_code7"007"
chairs"2"2
needs_power"false"false
event_date"2026/10/18""2026-10-18"
registration_id9007199254740993"9007199254740993"
notenullnull
欄位未完整顯示時,可左右捲動表格。

長編號存成文字前,先核對每一位

報名編號用來找到某一筆紀錄,不需要相加。本例因此約定存成文字,在右欄加上引號。椅子數量仍留數字,才能依規格核對總數。欄位要怎麼存,我會看它拿來做什麼、收件端要求什麼,不為了看起來一致就全部改成文字。

這裡有個容易漏掉的差別:本站格式化會保留9007199254740993的原始數字寫法,直接用 JavaScript 的 JSON.parse 讀取未加引號的同一數字,卻會得到9007199254740992。前一個工具保留得住,不代表下一個程式也有相同精度,所以交件前必須知道收件端怎麼讀。

若編號在前一個程式中已經被改成9007199254740992,再加引號只會把錯誤的值保存成文字。回到原始來源核對每一位,再依雙方約定輸出。收件端若堅持使用數字,應請維護者確認可接受範圍與精度,不能只由交件人改型別。

日期能排版,不表示日曆上有這一天

本例將日期改成"2026-10-18",是為了符合事先約定的格式,並非 JSON 只允許這種日期寫法。即使寫成"2026-02-30"也可能通過語法檢查,但2026年二月沒有30日。還要對照活動通知與日曆,確認它確實是預定辦理的日期。

備註的 null、空字串""、一個空格" "及整個 note 欄位不存在,是不同的資料。這裡約定 null 表示沒有備註,不代表所有表單都這樣定義。若空欄有「尚未回覆」和「確定沒有」兩種意思,先請收件人說明如何區分,不要批次替換成同一個值。

是否用電也要這樣核對。false 在本例代表已確認不用電,不能拿它填還沒問到答案的人。遇到未回覆的資料,我會先放進待確認清單,或按對方明訂的未知值處理。能寫成有效 JSON,和有沒有忠實記下報名內容,仍是兩件事。

先試匯入一筆,核對收到什麼再交整批

全部改好後,我會用對方提供的測試方式先交一筆,再看接收畫面裡到底留下了什麼:攤位007、椅子2張、不用電、10月18日,報名編號每一位都相同。這一步值得做,因為有些程式會忽略不認識的欄位,少了資料也未必報錯。「匯入成功」還不足以替你確認每一欄。

若沒有測試入口,先向維護者確認安全的試匯入方式,避免直接把同一筆資料反覆送進正式名單。尤其要先知道再次匯入是新增、覆蓋還是略過。否則修正檔案後再傳一次,可能留下兩筆報名。

開始處理整批時,核對的不只是一筆範例。假設這次有12筆報名,就逐項對照接收成功幾筆、失敗幾筆,以及原名單是否有人漏列或重複。若回報10筆成功、2筆失敗,先找出是哪兩筆與原因,也不要因總數對得上,就假定成功的10筆內容也完全正確。

原始匯出檔、為收件規格整理的檔案和接收結果各留一份,檔名標明用途與版本。核對紀錄寫清楚改了哪個欄位、依據是什麼,例如「booth_code 依紙本第007號恢復為三位字串」。這比只寫「格式修正」更方便之後追查。

原檔若含姓名、聯絡方式或其他未公開資料,示範與回報問題時改用另外製作的假資料,不要把整份真實名單放進公開貼文。本站工具不會替你決定檔案應交給誰;收件人、傳送管道與可分享欄位仍要先確認。

送出前,重新開啟這次要交的檔案,確認版本,附上收件規格和仍待確認的問題。前面保留的原檔、修改稿與接收結果,就是之後回查的依據:原資料已經錯了、轉換時改錯,或收件端讀法不同,才有辦法逐段查清楚。

參考來源