Swift - JSON转数组,数组转JSON等相关方法

本文介绍如何使用Swift将数组和字典转换为JSON字符串,并提供了从JSON字符串解析为对象和数组的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//数组转JSON
func arrayToJson(_ array:NSMutableArray)->String{
    
    //首先判断能不能转换
    if (!JSONSerialization.isValidJSONObject(array)) {
        //print("is not a valid json object")
        return ""
    }
    
    //利用OC的json库转换成OC的NSData,
    //如果设置options为NSJSONWritingOptions.PrettyPrinted,则打印格式更好阅读
    let data : Data! = try? JSONSerialization.data(withJSONObject: array, options: [])
    //NSData转换成NSString打印输出
    let str = NSString(data:data, encoding: String.Encoding.utf8.rawValue)
    //输出json字符串
    return str! as String
}

//数组(里面类型为字典)转字符串
func dicArrayToJson(_ dicArray:[Dictionary<String,String>])->String{
    
    //首先判断能不能转换
    if (!JSONSerialization.isValidJSONObject(dicArray)) {
        //print("is not a valid json object")
        return ""
    }
    
    //利用OC的json库转换成OC的NSData,
    //如果设置options为NSJSONWritingOptions.PrettyPrinted,则打印格式更好阅读
    let data : Data! = try? JSONSerialization.data(withJSONObject: dicArray, options: [])
    //NSData转换成NSString打印输出
    let str = NSString(data:data, encoding: String.Encoding.utf8.rawValue)
    //输出json字符串
    return str! as String
}

/** json 字符串字典*/
func jsonToObject(jsonString:String)->Dictionary<String,NSObject>{
    
    let dic = Dictionary<String,NSObject>()
    
    
    do{
        
        let data = jsonString.data(using: String.Encoding.utf8)!
        //把NSData对象转换回JSON对象
        let json :Any! = try JSONSerialization.jsonObject(with: data, options:JSONSerialization.ReadingOptions.mutableContainers)
        
        return json as! Dictionary<String, NSObject>
    }catch{
        return dic
    }
    
    
    
}

/** json 字符串数组*/
func jsonToArray(jsonString:String)->Array<Dictionary<String, String>>{
    
    let arr = [Dictionary<String,String>()]
    
    
    do{
        
        let data = jsonString.data(using: String.Encoding.utf8)!
        //把NSData对象转换回JSON对象
        let json : Any! = try JSONSerialization.jsonObject(with: data, options:JSONSerialization.ReadingOptions.mutableContainers)
        
        return json as! [Dictionary<String, String>]
    }catch{
        return arr
    }
    
}

 

转载于:https://my.oschina.net/wayzhu/blog/1924941

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值