jjzjj

JSONEncoder

全部标签

swift - JSONEncoder 不允许将类型编码为原始值

我正在为具有可能关联值的enum类型实现Codable。由于这些对于每种情况都是唯一的,我认为我可以在编码期间不使用key输出它们,然后在解码时简单地查看我能得到什么以恢复正确的情况。这是一个非常精简的人为示例,演示了一种动态类型值:enumMyValueError:Error{caseinvalidEncoding}enumMyValue{casebool(Bool)casefloat(Float)caseinteger(Int)casestring(String)}extensionMyValue:Codable{init(fromtheDecoder:Decoder)throws

json - JSONEncoder.encode 在 Swift 中抛出什么异常?

我最近在使用JSONEncoder.encode()(及其对应的JSONDecoder.decode()),标记在thedocumentation中。作为throws。不幸的是,文档没有详细说明此方法何时/如何/可能抛出什么。有人对此有任何见解吗?我问是因为我想知道这里的错误是否足够普遍以为此实现面向用户的错误处理。谢谢 最佳答案 JSONEncoder.encode()当您要编码的值之一无效时抛出EncodingError.invalidValue(例如Double.infinity如果NonConformingFloatEnco

python - 创建自定义 JSONEncoder

我正在运行Python2.7,我正在尝试创建JSONEncoder的自定义FloatEncoder子类。我遵循了许多示例,例如this,但似乎都不起作用。这是我的FloatEncoder类:classFloatEncoder(JSONEncoder):def_iterencode(self,obj,markers=None):ifisinstance(obj,float):return(str(obj)forobjin[obj])returnsuper(FloatEncoder,self)._iterencode(obj,markers)这里是我调用json.dumps的地方:with

python - 了解 JSONEncoder 的子类化

我正在尝试子类化json.JSONEncoder这样命名的元组(使用新的Python3.6+语法定义,但它可能仍然适用于collections.namedtuple的输出>)被序列化为JSON对象,其中元组字段对应于对象键。例如:fromtypingimportNamedTupleclassMyModel(NamedTuple):foo:intbar:str="Hello,World!"a=MyModel(123)#ExpectedJSON:{"foo":123,"bar":"Hello,World!"}b=MyModel(456,"xyzzy")#ExpectedJSON:{"foo

python - requests.post 的自定义 JSONEncoder

我正在为RESTAPI编写包装器并使用requests模块。方法.json()Response对象将**kwargs传输到json.loads()函数,因此我可以轻松地使用自定义JSON解码器,我。e.透明地将UNIX纪元时间戳转换为datetime.datetime对象。有什么方法可以将自定义JSON编码器与Request一起使用吗?目的?似乎我只能使用参数json,但找不到如何使用自定义JSON编码器。 最佳答案 从linkprovidedbyalecxe中提取答案,使用自定义编码器且不支持json参数。建议您手动构建帖子。r=

ios - 使用 JSONEncoder 对类型为 Codable 的变量进行编码

我设法让JSON和plist编码和解码工作,但只能通过直接调用特定对象的编码/解码函数。例如:structTest:Codable{varsomeString:String?}lettestItem=Test()testItem.someString="abc"letresult=tryJSONEncoder().encode(testItem)这很好用,没有问题。但是,我正在尝试获取一个函数,该函数仅将Codable协议(protocol)一致性作为类型并保存该对象。funcsaveObject(_object:Encodable,atlocation:String){//Somec

json - 使用 JSONEncoder 编码/解码符合协议(protocol)的类型数组

我正在尝试使用Swift4中的新JSONDecoder/Encoder找到对符合swift协议(protocol)的结构数组进行编码/解码的最佳方法。我编了一个小例子来说明问题:首先我们有一个协议(protocol)标签和一些符合这个协议(protocol)的类型。protocolTag:Codable{vartype:String{get}varvalue:String{get}}structAuthorTag:Tag{lettype="author"letvalue:String}structGenreTag:Tag{lettype="genre"letvalue:String}然

ios - 使用 JSONEncoder 将 nil 值编码为 null

我正在使用Swift4的JSONEncoder。我有一个带有可选属性的Codable结构,当值为nil时,我希望此属性在生成的JSON数据中显示为null值。但是,JSONEncoder会丢弃该属性并且不会将其添加到JSON输出中。有没有办法配置JSONEncoder以便在这种情况下保留key并将其设置为null?示例下面的代码片段生成{"number":1},但我希望它给我{"string":null,"number":1}:structFoo:Codable{varstring:String?=nilvarnumber:Int=1}letencoder=JSONEncoder()l

ios - 使用 JSONEncoder 将 nil 值编码为 null

我正在使用Swift4的JSONEncoder。我有一个带有可选属性的Codable结构,当值为nil时,我希望此属性在生成的JSON数据中显示为null值。但是,JSONEncoder会丢弃该属性并且不会将其添加到JSON输出中。有没有办法配置JSONEncoder以便在这种情况下保留key并将其设置为null?示例下面的代码片段生成{"number":1},但我希望它给我{"string":null,"number":1}:structFoo:Codable{varstring:String?=nilvarnumber:Int=1}letencoder=JSONEncoder()l

关于可编码:如何在 Swift 4 中使用 JSONEncoder 对字典进行编码

HowtoencodeDictionarywithJSONEncoderinSwift4我想用JSONEncoder将Dictionary编码为json。它看起来像一个请求,接收一个字典作为参数并将其编码为json作为http正文。代码如下所示:1234567891011121314151617181920212223242526letdict=["name":"abcde"]protocolRequest{  varparams:[String:Encodable]{getset}  funcencode(_value:T)throws->DatawhereT:Encodable}exten