有關 json_encode 函數中的 JSON_NUMERIC_CHECK 參數的困惑

來源:互聯網
上載者:User
REST API 返回的資料,有些欄位是字串,而有些資料是數字。因為查詢mysql返回的資料,全部都是加了雙引號的(都當成字串)。我希望的是數字不要加雙引號,而字串就加上雙引號。所以在進行 json_encode() 時,加了參數 JSON_NUMERIC_CHECK(參考)

但是問題來了:加了這個參數後,它會把 decimal 類型的 價格 price 比如:20.00 ,後面的小數點去掉了,還有一個就是,比如說它也會把比如社會安全號碼轉換成了科學計數法了。

比如,轉換前:

{    "username": "LiLi",     "passowrd": "123456",     "age": "25",    "card_no": "440901197709194316",     "balance": "20.00"}

使用 json_encode($data, JSON_NUMERIC_CHECK),轉換後:

{    "username": "LiLi",     "passowrd": 123456,     "age": 25,    "card_no": 4.4090119770919e+17,     "balance": 20}

我希望的是:card_no 和 balance 都要完整顯示,而不是被截取了(比如,它們可以保持為字串這樣),但是像 password 這些數字欄位依然會被轉換為數字顯示(雙引號去掉)。目前有沒有比較好的解決辦法??

如下是我希望的結果:

{    "username": "LiLi",     "passowrd": 123456,     "age": 25,    "card_no": 440901197709194316,     "balance": 20.00}

謝謝~~!!

回複內容:

REST API 返回的資料,有些欄位是字串,而有些資料是數字。因為查詢mysql返回的資料,全部都是加了雙引號的(都當成字串)。我希望的是數字不要加雙引號,而字串就加上雙引號。所以在進行json_encode() 時,加了參數 JSON_NUMERIC_CHECK(參考)

但是問題來了:加了這個參數後,它會把 decimal 類型的 價格 price 比如:20.00 ,後面的小數點去掉了,還有一個就是,比如說它也會把比如社會安全號碼轉換成了科學計數法了。

比如,轉換前:

{    "username": "LiLi",     "passowrd": "123456",     "age": "25",    "card_no": "440901197709194316",     "balance": "20.00"}

使用 json_encode($data, JSON_NUMERIC_CHECK),轉換後:

{    "username": "LiLi",     "passowrd": 123456,     "age": 25,    "card_no": 4.4090119770919e+17,     "balance": 20}

我希望的是:card_no 和 balance 都要完整顯示,而不是被截取了(比如,它們可以保持為字串這樣),但是像 password 這些數字欄位依然會被轉換為數字顯示(雙引號去掉)。目前有沒有比較好的解決辦法??

如下是我希望的結果:

{    "username": "LiLi",     "passowrd": 123456,     "age": 25,    "card_no": 440901197709194316,     "balance": 20.00}

謝謝~~!!

其實 你的
Model提交回伺服器 不管POST FromData或者JSON什麼方式 都變成了字串
一般我都每個Model對應一個format方法 手工轉換為我自己一開始設定的格式~

設定pdo$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.