我在PHP和JavaScript之間傳遞了很多數據。我在php中使用JSON和json_encode,但這裏的問題是我傳遞了很多數字作爲字符串存儲 - 例如數字1.2345。PHP <-> JavaScript通信:我堅持使用ASCII碼嗎?
有沒有辦法將數據直接作爲數字(浮點數,整數)傳遞,而不必將其轉換爲ASCII然後返回?
謝謝,
我在PHP和JavaScript之間傳遞了很多數據。我在php中使用JSON和json_encode,但這裏的問題是我傳遞了很多數字作爲字符串存儲 - 例如數字1.2345。PHP <-> JavaScript通信:我堅持使用ASCII碼嗎?
有沒有辦法將數據直接作爲數字(浮點數,整數)傳遞,而不必將其轉換爲ASCII然後返回?
謝謝,
號碼HTTP是一個字節流協議(*);任何下降的東西都必須打包成字節。如果您願意,您當然可以使用更緊湊的值的二進制值表示形式,但是對於您的PHP進行編碼和您的JS進行解碼將會有更多工作。
無論如何,對於小數字的常見情況,文本表示通常非常有效。你的例子1.2345
實際上比一個雙精度浮點數(8字節)小一個字符串(6個字節)。
JSON的發明正是爲了允許通過HTTP連接傳輸非字符串類型。它像你將要得到的那樣無縫。是否有任何理由關心在PHP float
和JavaScript Number
之間有一個serialise-> string-> parse步驟?因爲JS沒有字節數據類型,通過設置JSON響應的字符集爲iso-8859-1
,你可以使它像純字節一樣工作,但默認的utf-8
通常是更多的合適)。
?我不明白這個問題。 Javascript沒有類型,所以你怎麼能像float,整數等那樣傳遞變量? – echox 2010-04-22 22:25:49
@echox - OP問他是否可以直接傳送一個'Number'。當然這是不可能的,即使JSON格式也是一個字符串。 – Matt 2010-04-22 22:29:29
thx爲您清理 – echox 2010-04-23 09:26:59