首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中删除单个backSlash

从字符串中删除单个backSlash
EN

Stack Overflow用户
提问于 2017-09-24 20:52:22
回答 1查看 953关注 0票数 0

我尝试将json参数发送到服务器。这是我所有的代码,但我有一个反斜杠字符的问题。这是包含backSlash字符测试变量结果。我应该删除这个字符,因为在服务器端我得到了一个无效的输入错误,并且服务器无法检测到发送参数。

替换字符“”{\“强制\”:\“1\”,\“从\”:\“0\”,\“标志\”:\“1\”,\“到\”:\“0\”,\“规范\”:{\“属性值掩码\”:\“*\”,\“项类型\”:\“avl_resource\”,\“排序类型\”:\“sys_name\”,\“属性类型\”:\“avl_resource\”,\“属性名称\”:\“sys_name\”}}“

代码语言:javascript
复制
private func RegisterForGetSourceList() {

    var sid = ""

    if let authEntity = AuthenticationManager.shareInstance.fetchAuthenticationEntity() {

        if let tokenKey = authEntity.sID {
            sid = tokenKey
        }
    }

    let specParam = [
        "itemsType": "avl_resource",
        "propName": "sys_name",
        "propValueMask": "*",
        "sortType": "sys_name",
        "propType": "avl_resource"
    ]

    let paramJSON: [String: Any] = [
        "spec": specParam,
        "force": "1",
        "flag": "1",
        "from": "0",
        "to": "0"
        ]

    do {

        let paramData = try JSONSerialization.data(withJSONObject: paramJSON, options: .prettyPrinted)

        if let paramString = NSString(data: paramData, encoding: String.Encoding.utf8.rawValue) as String? {

            var test = String(paramString.characters.filter { !" \n\t\r".characters.contains($0) })

            test = test.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)

            let parameters = [Constant.SVC:Constant.SEARCH_ITEMS_SVC,Constant.SID:sid,Constant.PARAM:test] as [String: Any]

            LibraryAPI.shareInstance.RunHttpPostJSONRequest(parameters: parameters, contentType: "JSON", closure: { success, error in

                if let result = success as? [String: Any] {
                    if let eid = result["eid"] as? String {}
                } else if error != nil  {
                    print(error?.localizedDescription ?? "there was an error in get response")
                }
            })
        }
    } catch {
        print(error.localizedDescription)
    }
}

我读了许多链接,在所有的主题中都建议替换"\“,但这是不起作用的。有人有一些建议来解决这个问题,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-09-24 21:23:56

正如vadian所建议的,字符串反斜杠是虚拟的,不会发送到服务器。

如果您想打印json以进行调试,我建议您使用以下方法:

代码语言:javascript
复制
var json = try JSONSerialization.jsonObject(with: paramData, options: .allowFragments)

确保它被包装在do-catch块中。

如果你想把json作为字符串,你可以这样做:

代码语言:javascript
复制
let convertedString = String(data: paramData, encoding: .utf8)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46390232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档