在Ubuntu/Linux上使用Swift和NSJSONSerialization

4

当在Ubuntu上运行Swift时,使用NSJSONSerialization解析JSON是否可能?由于Foundation可用,我认为应该可以。

如果不行,是否有其他方法可以在Linux上使用Swift对JSON进行序列化和反序列化?

3个回答

2

我在这里使用TidyJSON,因为它结合了SwiftyJSON的易用性,但不依赖于NSJSONSerialization进行解析。它适用于Swift支持的任何地方,我正在我的当前Swift/Ubuntu项目中非常好地使用它。


2

NSJSONSerialization已经部分实现(序列化尚未实现)。

根据您的需求自行操作,您会发现这是最好的投资和了解Swift及其可能性的好方法。您还可以使用其中一个可用的开源库。例如,SwiftyJSON非常受欢迎。

正如Sebastian Osiński所提到的那样,不幸的是它也使用了NSJSONSerialization。

您可以检查这个非常简单但有效的例子 swift json。虽然它离“完美”还有很大差距,但作为灵感,它可能会对您有所帮助,我希望如此。


1
SwiftyJSON在内部使用NSJSONSerialization,因此它不是解决方案。 - Sebastian Osiński
@SebastianOsiński 谢谢!我从来没有用过,很抱歉。 - user3441734
1
你知道NSJSONSerialization是否仍然只有部分实现吗?在哪里可以查看标准库的哪些部分已经在Linux中实现或尚未实现? - UberJason

0
如果您正在使用服务器端Swift框架“Perfect”,您可以像这样将“data”(二进制)类型转换为“JSONConvertable”(Swift数组等)对象类型。
do{
    let jsonObject = try String.init(data: jsonData, encoding: .utf8)?.jsonDecode()
    print("\(jsonObject as! [String])")
    }catch{
        response.completed(status: .badRequest)
        return
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接