2016-09-20 57 views
0

我正在將數據從python函數的輸出移動到php,然後將其轉換爲JSON並將其發送到使用AJAX調用它的JavaScript函數。從具有特定模式的字符串中刪除多餘的字符PHP

格式應該是這樣的:

{"data_name" : [1.02, 3.013, -24.12, 39], "data_name_2" : [-0.32151], "data_name_3" : [0.321, -21.42425, 225125.002]} 

眼下,Python是通過json.dumps返回數據和輸出是一種奇怪的,一旦達到PHP。由於數據是從已經Python的JSON,json_encode不能正常工作,只是呼應JSON數據產生這樣:

"[{\"data_name\" : [[1.02], [3.013], [-24.12], [39]]}, {\"data_name_2\" : -0.32151}, {\"data_name_3\" : [[0.321], [-21.42425], [225125.002]]}, null]" 

所以,我怎麼可以做以下的事情?

  1. 從字符串的開頭
  2. 刪除所有反斜槓刪除第一個"[引號(所以\"data_name\"變得"data_name"
  3. 從每個字段中刪除}, {(除了第一個)
  4. 之前
  5. 對於2D陣列,取下內[]符號,使得[[1.02], [2.02]]變得[1.02, 2.02]
  6. 對於單數,加[]周圍他們,所以-0.32151變成[-0.32151]
  7. 最後,一旦我達到}, null]",我想刪除, null]",只是保持結束}

我瞭解一些strpos,但我不知道我怎麼可以結合某種形式的正則表達式,或者如果我通過串需要手動循環採取每個步驟的護理。如果任何人有一個如何開始的想法,我將不勝感激。

+1

「我的數據編碼不正確」的適當修復不是爲了修改編碼文本中的變化,而是修復數據預編碼或後解碼。 – Sammitch

+0

試試這個:http://stackoverflow.com/a/8635181/3541922 – MikeVelazco

+1

JSON是一個標準,你應該能夠閱讀PHP或任何語言的支持。檢查雙方的代碼。 – MikeVelazco

回答

0

我同意Sammitch。

的快速修復2.爲stripslashes

對於剩下的,你可以用preg_replace能夠正確地過濾,但爲什麼不只是改變Python的輸出創造模式?

相關問題