php
  • python
  • json
  • string
  • 2016-12-28 206 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"] } 
    
    相关问题