我一直在寻找将Swift中一个相当简单的JSON字符串转换为对象类型但无济于事的日子。
这是Web服务调用的代码:
func GetAllBusiness() {
Alamofire.request(.GET, "http://MyWebService/").responseString { (request, response, string, error) in
println(string)
}
}
我有一个快速的结构Business.swift:
struct Business {
var Id : Int = 0
var Name = ""
var Latitude = ""
var Longitude = ""
var Address = ""
}
这是我部署的测试服务:
[
{
"Id": 1,
"Name": "A",
"Latitude": "-35.243256",
"Longitude": "149.110701",
"Address": null
},
{
"Id": 2,
"Name": "B",
"Latitude": "-35.240592",
"Longitude": "149.104843",
"Address": null
}
...
]
如果有人通过这个指导我会很高兴。
谢谢。
这里有一些技巧,以简单的例子开始。
考虑您具有以下JSON Array String(类似于您的):
var list:Array<Business> = []
// left only 2 fields for demo
struct Business {
var id : Int = 0
var name = ""
}
var jsonStringAsArray = "[\n" +
"{\n" +
"\"id\":72,\n" +
"\"name\":\"Batata Cremosa\",\n" +
"},\n" +
"{\n" +
"\"id\":183,\n" +
"\"name\":\"Caldeirada de Peixes\",\n" +
"},\n" +
"{\n" +
"\"id\":76,\n" +
"\"name\":\"Batata com Cebola e Ervas\",\n" +
"},\n" +
"{\n" +
"\"id\":56,\n" +
"\"name\":\"Arroz de forma\",\n" +
"}]"
// convert String to NSData
var data: NSData = jsonStringAsArray.dataUsingEncoding(NSUTF8StringEncoding)!
var error: NSError?
// convert NSData to 'AnyObject'
let anyObj: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(0),
error: &error)
println("Error: \(error)")
// convert 'AnyObject' to Array<Business>
list = self.parseJson(anyObj!)
//===============
func parseJson(anyObj:AnyObject) -> Array<Business>{
var list:Array<Business> = []
if anyObj is Array<AnyObject> {
var b:Business = Business()
for json in anyObj as Array<AnyObject>{
b.name = (json["name"] as AnyObject? as? String) ?? "" // to get rid of null
b.id = (json["id"] as AnyObject? as? Int) ?? 0
list.append(b)
}// for
} // if
return list
}//func
[编辑]
摆脱null更改为:
b.name = (json["name"] as AnyObject? as? String) ?? ""
b.id = (json["id"] as AnyObject? as? Int) ?? 0
另请参阅**[Coalescing Operator](https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html#//apple_ref/doc/uid/TP40014097-CH6-XID_124)**
(aka的参考??
)
希望它能帮助您解决问题,
我正试图用jackson-core-2.9.6把我的json转换成地图。我的json是 我试图将JSON解析成Map的Java代码是这样的 我得到的异常是com.fasterxml.jackson.databind.exc.MismatchedInputException:无法构造(尽管至少存在一个Creator):没有String参数构造函数/工厂方法可以从[源:(String)“”{\r\n“
如何从字符串生成有效的UUID?字符串本身不是我要找的。相反,我正在寻找类似于将任何字符串转换为有效 UUID 的哈希函数。
我正在尝试如何在Swift中将转换为。 我想出了一个变通方法,使用但是我想知道如何在Swift中完成这一切。
我有一个RestController类,它有一个方法可以根据电影的标题搜索电影: 如果我发送一个json字符串 从邮递员到endpoint,我收到一个空白的回复。 然后我做了一个 就在进入方法后找到字符串filmSearch正是我从邮递员发送的JSON字符串。我的应用程序没有看到JSON和提取值从filmSearch在我的请求附加到应用程序内字符串filmSearch. 如果我移除 在请求映射的一
问题内容: 一开始我没有清楚地解释我的问题。在python中将json转换为字符串时,请尝试使用和。 我的问题是: 我的预期输出: 我的预期输出: 对我来说,不必再次将输出字符串更改为json(dict)。 这该怎么做? 问题答案: 不仅仅是从Python对象中生成一个 字符串 ,它还会在Type Conversion Table 之后始终生成一个 有效的 JSON字符串(假设对象内部的所有内容都
问题内容: 我正在尝试将a转换为a ,然后更改格式。但是当我传递给它时会产生空白。 问题答案: 您可以从Apple Dateformatter文档中 获取详细信息。如果要为dateString设置dateformat,请参阅此链接,您可以在此处获取详细的dateformat ,例如 你得到的输出为