php
  • python
  • json
  • string
  • 2016-12-28 237 views -1 likes 
    -1

    如何將描述對象的字符串轉換爲使用PHP(或Python)的JSON字符串?將非JSON字符串轉換爲JSON

    e.g:此轉換(不是有效的JSON字符串):

    var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }" 
    

    到這一點:

    str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }' 
    

    我很想避免使用eval()如果可能的話。

    +0

    更好地創建新的數組,並更改該數組與PHP此功能JSON json_encode –

    回答

    4

    一對夫婦正則表達式的替換操作應該這樣做:

    var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"; 
     
    
     
    var json = str.replace(/(\w+):/g, '"$1":') 
     
           .replace(/'/g, '"'); 
     
    
     
    console.log(json);

    也就是說,第一替換後跟一個冒號(/(\w+):/g)中的一個或多個單詞字符的任何情況下,然後將所有單引號更改爲雙打。

    +0

    嗝請幫我在PHP或者Python –

    +0

    沒有,對不起,我真的不這樣做PHP或Python,但我會認爲兩者都會讓你做一個等效的幾個基於正則表達式的替換。如果你不想JavaScript,爲什麼用「JavaScript」標記問題? – nnnnnn

    0

    python3

    import re 
    
    s = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }" 
    # ' => " 
    s = re.sub(r"'", '"', s) # or s = s.replace("'",'"') 
    # key: => "key": 
    s = re.sub(r'(\w+):', '"\g<1>":', s) 
    print(s) 
    # { "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] } 
    
    相關問題