我创建了一个,struct
并希望将其另存为JSON文件。
struct Sentence {
var sentence = ""
var lang = ""
}
var s = Sentence()
s.sentence = "Hello world"
s.lang = "en"
print(s)
…导致:
Sentence(sentence: "Hello world", lang: "en")
但是如何将struct
对象转换为类似的东西:
{
"sentence": "Hello world",
"lang": "en"
}
您可以添加一个计算属性以获取JSON表示,并添加静态(类)函数以从
Sentence
数组创建JSON 数组。
struct Sentence {
var sentence = ""
var lang = ""
static func jsonArray(array : [Sentence]) -> String
{
return "[" + array.map {$0.jsonRepresentation}.joinWithSeparator(",") + "]"
}
var jsonRepresentation : String {
return "{\"sentence\":\"\(sentence)\",\"lang\":\"\(lang)\"}"
}
}
let sentences = [Sentence(sentence: "Hello world", lang: "en"), Sentence(sentence: "Hallo Welt", lang: "de")]
let jsonArray = Sentence.jsonArray(sentences)
print(jsonArray) // [{"sentence":"Hello world","lang":"en"},{"sentence":"Hallo Welt","lang":"de"}]
编辑:
Swift 4引入了该Codable
协议,该协议提供了一种非常方便的方式来编码和解码自定义结构。
struct Sentence : Codable {
let sentence : String
let lang : String
}
let sentences = [Sentence(sentence: "Hello world", lang: "en"),
Sentence(sentence: "Hallo Welt", lang: "de")]
do {
let jsonData = try JSONEncoder().encode(sentences)
let jsonString = String(data: jsonData, encoding: .utf8)!
print(jsonString) // [{"sentence":"Hello world","lang":"en"},{"sentence":"Hallo Welt","lang":"de"}]
// and decode it back
let decodedSentences = try JSONDecoder().decode([Sentence].self, from: jsonData)
print(decodedSentences)
} catch { print(error) }
问题内容: 有没有一种方法可以将Swift结构的地址转换为无效的UnsafeMutablePointer? 我尝试了一下但没有成功: 谢谢! 编辑: 我实际上正在尝试 将上下文 移植到Swift中 学习CoreAudio 的第一个示例。 这是我到目前为止所做的: 我正在努力留在Swift中,但是如果事实证明这是一个问题而不是优势,那么我最终将链接到C函数。 编辑:底线 如果您因为试图在Swift中
问题内容: 我正在尝试使用该包将Go结构转换为JSON,但我得到的只是。我敢肯定这是完全显而易见的,但我看不到。 然后,当我尝试运行它时,我得到以下信息: 问题答案: 您需要导出的字段,以便在包装可以看到它。将字段重命名为。 输出:
问题内容: 但是,我仍然无法将csv文件转换为JSON的层次结构。我在stackoverflow上找到的脚本是特定于某个问题的。假设必须对三个变量进行分组: 这将导致这样的JSON文件(据我尝试): 这些必须分组为嵌套结构,例如: 我尝试了该站点上的每个脚本,但是无法创建可以使flare.json这样的通用函数。我可以发布代码,但这就像上面提供的链接一样。因此,我要求一个简单的代码(或可以帮助我的
问题内容: 我在此上浪费了很多时间。递归部分非常虚幻。 对于未知深度的给定HTML结构,我需要转换为JSON。 (我从正在构建的某些YAML i18n翻译系统中使用此功能) 我的一般想法是深入了解,直到找到,然后使用的键/值创建一个对象,然后返回该对象,因此它将是最后到达的KEY的值。 (是的,开发有点复杂,但非常有趣) JSBIN游乐场 -实时代码示例 我无法让递归函数正常工作,无法输出所需的J
问题内容: 我在Swift 中将元素转换为,然后将变量转换回时遇到了问题。 首先,我想提取以下JSON数据的元素: 放入NSData 变量,但似乎无法做到这一点。我用来解析如下: 但这给了我一个ScalarNumber数组,我不知道如何存储到一个对象中。 其次,我想从同一个对象生成回来: 但是NSData 对象不会转换为[-67,51,-38,61,-72,102,48],它只是使JSON字符串无
我有一个具有如下架构的数据帧 我已经有了上面的结果。 我想使用火花scala转换如下架构 请帮忙