char' \'反序列化问题

时间:2014-04-11 17:13:11

标签: vb.net json.net

json.net是否有一个可以转义特殊字符的内置方法?我从供应商处收集的json字符串有\,双"

如果不是在调用JsonConvert.DeserializeObject(myjsonString)之前逃避特殊字符的最佳方法是什么?

我的示例json字符串

{
    "EmailAddresses": [
        {
            "EmailAddress": "N\A"

        }
    ]
}

在json lint中粘贴这个结果 Parse error on line 4: ... "EmailAddress": "N\A",
-----------------------^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

VB.NET代码

instanceofmytype = JsonConvert.DeserializeObject(Of myType)(myJsonString)

例外:Newtonsoft.Json.JsonReaderException: Bad JSON escape sequence:

2 个答案:

答案 0 :(得分:2)

JSON无效:\必须后跟以下其中一项:"\/bfnrtu。由于它后跟A,Json.NET会窒息(因为它应该)。应该修复JSON的来源。如果这不是一个选项,你可以猜测自己修复它,例如

myStr = Regex.Replace(myStr, "\\(?=[^""\\/bfnrtu])", "\\")

答案 1 :(得分:0)

你不应该担心它。 JSON.NET为您处理了许多好事。它应该工作。

你试过吗?