ios - 如何将模型对象序列化为 JSON 字符串 - Swift 3

标签 ios json

这个问题在这里已经有了答案:





How to Make JSON from Array of Struct in Swift 3?

(1 个回答)


5年前关闭。




我的模型是

public class getCompanyRequestModel
{
    public var userLoginId : String?
    public var searchString : String?
    public var tableName : String?
}

在 viewController 的 viewdidload 方法中,我创建了 getCompanyRequestModel 对象
var objGetCompany = getCompanyRequestModel()

objGetCompany.userLoginId = "Dilip";
objGetCompany.searchString = "tata";
objGetCompany.tableName = "null";

现在我想从 objGetCompany 获取 JSON 字符串,如下所示
"{\"UserLoginId\":\"Dilip\",\"SearchString\":\"tata\",\"TableName\":\"null\"}";

在 C# 中,我从下面的代码行获取 JSON 字符串
string JsonParameters =     JsonConvert.SerializeObject(objGetCompany);

任何有兴趣解决我的问题的人:-)

最佳答案

添加属性 jsonRepresentation上课:

var jsonRepresentation : String {
    let dict = ["userLoginId" : userLoginId, "searchString" : searchString, "tableName" : tableName]
    let data =  try! JSONSerialization.data(withJSONObject: dict, options: [])
    return String(data:data, encoding:.utf8)!
}

顺便说一句:Swift 中的类名应该以大写字母开头。

并且不要使用可选项作为懒惰的借口,不要编写初始化程序......

更新:

在 Swift 4 中有一个更聪明的方法:删除 jsonRepresentation并采用Codable
public class CompanyRequestModel : Codable { ...

然后使用 JSONEncoder
let data = try JSONEncoder().encode(objGetCompany)
let jsonString = String(data: data, encoding: .utf8)!

关于ios - 如何将模型对象序列化为 JSON 字符串 - Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42223594/

相关文章:

iphone - 我的第一个 iPhone 应用程序测试

ios - Sprite Kit 中一个 child 可以有多个 parent 吗?

jquery - 获取未捕获的语法错误: Unexpected Token ':'

javascript - forEach 不是函数错误

ios - 将 segue 添加到动态创建的单元格

objective-c - Cocoa 的 NIB/XIB 混淆

ios - 如何在 CAShapeLayer 中制作动态 strokeColor?在 swift

javascript - 如何计算json中的相似值对象?

Swift 中的 Json Api 管理器

JavaScript .each 函数保存最后一个值