- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在将我非常简单的应用程序从 javascript(嵌入在应用程序中)移植到 ios8/swift 和 Xcode。该应用程序将使用 CalendarApiV3 在谷歌日历中插入一些简单的事件。
在 javascript 中很容易创建一个简单的数据结构来传递一个 http POST 请求,就像这个结构:
var data:struct =
{
"end": {
"dateTime": "20141223T12:25:00Z"
},
"start": {
"dateTime": "20141223T10:25:00Z"
},
"summary": "description of event",
"reminders": {
"useDefault": false,
"overrides": [
{
"method": "sms",
"minutes": "60"
},
{
"method": "email",
"minutes": "60"
}
]
}
};
好的,如何在 Swift 中重新创建 some 结构?我最终寻找 swifty json,但他们都告诉我如何解析请求的 json,而不是如何形成 json 请求。我希望我说的很清楚。
提前致谢。
维克多
最佳答案
这是一个非常简单的示例,我假设没有人愿意处理 JSON 字符串,他们希望从数据结构中创建它们。
var dict1 = ["dave": "drangle", "hume": "cronyn"]
var dict2 = ["bob": "fossil", "vince": "powers"]
var ary = [dict1, dict2]
var jsonData = JSON(ary)
var post:NSData = jsonData.rawData()!;
var postLength:NSString = String(post.length)
var url:NSURL = NSURL(string: "https://some.server.com/mobile.php")!
var request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.HTTPBody = post
request.setValue(postLength, forHTTPHeaderField: "Content-Length")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")
if let data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil) {
println(data)
}
如您所见,它是一个字典数组,然后将其转换为 SwiftyJSON 结构。 jsonData.rawData()!是什么让你 NSData 是 request.HTTPBody 所需的数据类型。这是您使用 file_get_contents("php://input") 和 print_r(json_decode()) 在 PHP 服务器端看到的内容:
[{"hume":"cronyn","dave":"drangle"},{"bob":"fossil","vince":"powers"}]
Array
(
[0] => stdClass Object
(
[hume] => cronyn
[dave] => dangler
)
[1] => stdClass Object
(
[bob] => fossil
[vince] => powers
)
)
关于json - 如何在 swift 中创建特定的数据结构。 Swifty Json 没有用 :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27590754/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!