json - 使用 swift 从 JSON 中删除不需要的数据
问题描述
我得到回应
{"msg":"Success: Mobile Number is Valid","status":0}396b6c706a54383638343131
如何使用 swift 从我的 API 响应中获取有效的 JSON 我收到 JSON 错误。
代码:
NSLog("Login response: " + response, "response")
let jsonTag = JSON(response.dropLast(24).data(using: .utf8)!)
let loginModelRootClass = LoginModelRootClass(fromJson: jsonTag )
if (loginModelRootClass.status == 0)
{
/* successfully login */
NSLog("Login response: " + loginModelRootClass.msg, "response")
}
else
{
/* failure login */
NSLog("Login response: " + loginModelRootClass.msg, "response")
新来的 swift 请帮忙。
解决方案
我同意最好的选择是让后端发送有效 json 的评论。但是,如果这是不可能的,您可以使用下面的函数来删除无效的尾随数据,然后使用解码Codable
func clean(json: String) -> String? {
guard let closing = json.lastIndex(of: "}") else {return nil}
var string = json
let range = string.index(after: closing)..<string.endIndex
string.removeSubrange(range)
return string
}
推荐阅读
- google-cloud-cdn - Google Cloud CDN 可以用于未部署在 Google Cloud 上的业务吗?
- docker - 在 dockerfile 构建期间传递主机环境变量
- php - 会话在 php Laravel 中无法正常工作
- autoit - 使用 AutoIT 和 WinSCP 检查连接和传输是否成功
- android - 暂停或停止片段后不显示键盘
- c# - 如何在 Unity Skybox 内部播放 360 度视频中找到佩戴 VR 耳机的用户正在观看的坐标?
- c# - 如何使用 C# 验证 SSL 证书
- delphi - Delphi 和 High-DPI:在运行时创建的控件获得错误的位置
- c++ - 如何在 Xcode 中使用 boost::multiprecision::float128
- c# - 从另一个类而不是新创建的 C# WPF 更新 Window 的当前实例