首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字典插入字典

将字典插入字典
EN

Stack Overflow用户
提问于 2015-11-20 14:04:29
回答 2查看 127关注 0票数 0

我需要设置一个包含一些json的标题。我试过以下几点。有可能吗?你能做到吗?注意,我使用的是SwiftyJSON,因此JSON(jsonVar). rawString()

来自SwiftyJSON:

公共函数rawString(编码: UInt = NSUTF8StringEncoding,选项选择: NSJSONWritingOptions = .PrettyPrinted) ->字符串?{ switch self.type { case .Array,.Dictionary:{ let data = try self.rawData(选项: opt)返回NSString(数据:数据,编码:编码)为?字符串} catch _{ return } case .String:返回self.rawString case .Number:返回self.rawNumber.stringValue case .Bool:返回self.rawNumber.boolValue.description case .Null:返回"null“默认值:返回nil }}

代码语言:javascript
复制
let addthis = [
    "foo": [1,2,3],
    "bar": [
        "baz": "qux"
    ]
]


    let headers = [
        //    "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
        "Content-Type": "application/x-www-form-urlencoded",
        "addthis":" \(JSON(addthis).rawString()) "
    ]

我在http服务器上得到了这个:

代码语言:javascript
复制
Optional("{\n  \"foo\" : [\n    1,\n    2,\n    3\n  ],\n  \"bar\" : {\n    \"baz\" : \"qux\"\n  }\n}")
EN

回答 2

Stack Overflow用户

发布于 2015-11-20 14:31:37

代码语言:javascript
复制
let headers = [
    "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
    "Content-Type": "application/x-www-form-urlencoded",
    "addthis": JSON(addthis).rawString()!
]

注意!首先检查.rawString是否是有效字符串!

代码语言:javascript
复制
if let json = JSON(addthis).rawString() {
    let headers = [
        "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
        "Content-Type": "application/x-www-form-urlencoded",
        "addthis": json
    ]
}

..。或者如果空字符串是可接受的

代码语言:javascript
复制
let headers = [
        "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
        "Content-Type": "application/x-www-form-urlencoded",
        "addthis": JSON(addthis).rawString() ?? ""
    ]

..。

代码语言:javascript
复制
var a: String? = "alfa"
print(a, a.dynamicType) // Optional("alfa") Optional<String>
let b = a ?? ""
print(b, b.dynamicType) // alfa String

..。给这个反斜杠带来麻烦..。作为字符串的一部分,必须像“\”那样转义。

票数 0
EN

Stack Overflow用户

发布于 2015-11-20 19:29:45

我相信你唯一能做的就是:

代码语言:javascript
复制
 let jsonString = removeUnexpectedCharactersFromJSONString(YOURJSON.rawString()!)

我写了一个简单的函数:

代码语言:javascript
复制
func removeUnexpectedCharactersFromJSONString(jsonString: String) -> String {
    var newStr = jsonString
    newStr = newStr.stringByReplacingOccurrencesOfString("\n", withString: "")
    newStr = newStr.stringByReplacingOccurrencesOfString(" ", withString: "")
    newStr = newStr.stringByReplacingOccurrencesOfString("\t", withString: "")
    return newStr
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33828651

复制
相关文章

相似问题

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