如何在构建JSON字符串时转义特殊字符?

如何在构建JSON字符串时转义特殊字符?

这是我的字符串

{
    'user': {
        'name': 'abc',
        'fx': {
            'message': {
                'color': 'red'
            },
            'user': {
                'color': 'blue'
            }
        }
    },
    'timestamp': '2013-10-04T08: 10: 41+0100',
    'message': 'I'mABC..',
    'nanotime': '19993363098581330'}

这里的消息包含单引号,与JSON中使用的引用相同。我所做的是填写用户输入的字符串,如消息。所以,我需要摆脱那些破坏代码的特殊场景。但除了字符串替换之外,是否有任何方法可以使它们转义但仍允许HTML将它们处理回正确的消息?


手掌心
浏览 1022回答 3
3回答

牧羊人nacy

根据规范,JSON字符串必须是双引号,因此您无需转义'。如果必须在JSON字符串中使用特殊字符,则可以使用\字符对其进行转义。请参阅JSON中使用的此特殊字符列表:\b  Backspace (ascii code 08)\f  Form feed (ascii code 0C)\n  New line\r  Carriage return\t  Tab\"  Double quote\\  Backslash character但是,即使它完全违反规范,作者也可以使用\'。这很糟糕,因为:这与规格相反它不再是JSON有效字符串但是,无论你想要与否,它都有效。对于新读者,请始终对json字符串使用双引号。

慕无忌1623718

每个人都在谈论如何'在一个'引用的字符串文字中逃避。这里有一个更大的问题:单引号字符串文字不是有效的JSON。JSON基于JavaScript,但它不是一回事。如果你在JavaScript代码中编写一个对象文字,那很好; 如果你真的需要JSON,你需要使用"。使用双引号字符串,您不需要逃避'。(如果你确实想要"字符串中的文字,你可以使用\"。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery