首页 > 其他分享 >swift JSONString和字典互转

swift JSONString和字典互转

时间:2024-07-01 09:54:00浏览次数:1  
标签:JSONString return String data else guard result 互转 swift

 

extension Dictionary {
    public func toJSONString() -> String? {
        guard let data = try? JSONSerialization.data(withJSONObject: self, options: []) else {
            return nil
        }
        guard let string = String(data: data, encoding: .utf8) else {
            return nil
        }
        return string
    }
}

extension String {
    public func toDictionary() -> [String : Any] {
        var result = [String : Any]()
        guard !self.isEmpty else { return result }
        guard let dataSelf = self.data(using: .utf8) else {
            return result
        }
        if let dic = try? JSONSerialization.jsonObject(with: dataSelf,
                           options: .mutableContainers) as? [String : Any] {
            result = dic
        }
        return result
    }
}

 

标签:JSONString,return,String,data,else,guard,result,互转,swift
From: https://www.cnblogs.com/qingzZ/p/18277441

相关文章

  • Swift 新结构化并发中鲜为人知的 isolated 参数
    概述伴随着Swift5.5(WWDC21)推出的新结构化并发到今年的WWDC24已经有3个多年头了。想必大家都对其中async/awiat、asynclet、TaskGroup、Actor等各种概念都了然于胸了吧?不过小伙伴们可能不知道的是:新结构化并发(或叫现代结构化并发)中还有一个“隐藏宝藏”,它就是i......
  • Swift Combine — Debounce和Throttle的理解与使用
    Debounce和Throttle是两种常用的操作符,用于控制数据流的频率和处理延迟。但它们的实现方式略有不同。理解这些差异对于在Combine代码中做出正确选择至关重要。DebounceDebounce操作符用于限制数据流的频率,只有在指定的时间间隔内没有新数据到达时,才会将最后一个数据发......
  • SpringBoot前后端传递数据时常用的JSON格式数据是什么?【讲解JSON概念、语法、以及Java
    SpringBoot前后端传递数据时常用的JSON格式数据是什么?JSON概念JSON语法JSON的两种结构:JSON字符串和Java对象互转:objectMapper.writeValueAsString(person);objectMapper.readValue(jsonStr,Person.class);在SpringMVC框架中,前后端交互会自动转JsonJSON概念JSON:Jav......
  • IOS Swift 从入门到精通: 可选项、展开和类型转换
    文章目录处理缺失数据展开可选值用保护装置解开强制展开隐式解包可选值零合并可选链式调用可选尝试可失败的初始化器类型转换总结处理缺失数据我们已经使用诸如之类的类型Int来保存像5这样的值。但是如果您想存储age用户的属性,如果您不知道某人的年龄,您会怎么做?......
  • epub与mobi可以相互转换吗?
    在数字化时代,电子书格式多样,每种格式都有其独特的特点和适用场景。其中,EPUB和MOBI是两种非常流行的电子书格式。然而,有时候,用户可能会因为某种需求或限制,希望将EPUB格式的文件转换为MOBI格式。或者反过来讲MOBI格式转换为EPUB格式?那么epub与mobi如何实现相互转换呢?方法一:在线转换......
  • verilog实现格雷码和二进制码的相互转换
    目录格雷码的介绍二进制码转化为格雷码格雷码转化为二进制码verilog实现代码格雷码的介绍在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(GrayCode),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。在数字系统......
  • PyTorch与TensorFlow模型互转指南
    在深度学习的领域中,PyTorch和TensorFlow是两大广泛使用的框架。每个框架都有其独特的优势和特性,因此在不同的项目中选择使用哪一个框架可能会有所不同。然而,有时我们可能需要在这两个框架之间进行模型的转换,以便于在不同的环境中部署或利用两者的优势。本文将详细介绍如何......
  • QTime序列化时间处理(字符串与秒、毫秒互转)
    秒转为时、分、秒格式inttime_sec=11320;QStringtime=QTime(0,0,0).addSecs(static_cast<int>(time_sec)).toString(QString::fromLatin1("HH:mm:ss"));qDebug()<<time;//输出:"03:08:40"毫秒转为时、分、秒、毫秒格式inttime_ms=211320;QString......
  • JSON 和对象的互转(fastjson2 的简单使用)
    fastjson2的简单使用导包随便挑个版本<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.25</version></dependency>使用单个对象Stringstr=JSON.toJSONString......
  • Linux速成技巧:通过Docker高效运行Swift
    Swift,作为苹果公司推出的一种强类型编程语言,以其高效、安全的特性在开发社区中广受欢迎。虽然Swift最初是为iOS和macOS开发设计的,但它的应用范围已经扩展到了Linux平台。在Linux环境中,通过Docker运行Swift成为了一种流行且高效的方式。本文将详细介绍如何在Linux环境中通过D......