How to include null value in the JSON via NSJSONSerialization?

前端 未结 4 650
情深已故
情深已故 2020-12-30 22:25

I think I get it how to use the NSJSONSerialization over all. The call I am making is:

[NSJSONSerialization dataWithJSONObject:parameters options:0 error:&a         


        
相关标签:
4条回答
  • 2020-12-30 22:57

    If you are using Swifty JSON, I've just created a PR that should handle nil. It's not merged yet and might need some improvements. The part that describes how to do that should be a good start to write your own implementation if you need to. The logic is not that complicated but there might be tricky edge cases/performance things to think about.

    I know it's not a direct response to the question since it's replacing NSJSONSerialization, but I hope it can help some people frustrated by how Swift handles nil/json!

    0 讨论(0)
  • 2020-12-30 23:01

    I tried doing this and worked for me.

    var param: [String:Any] = [:]
    
    param["firstName"] = "somename"
    
    param["middleName"] = NSNull()
    
    param["lastName"] = "somename"
    
    print(param)
    

    Result:

    ["firstName":"somename","middleName":null,"lastName":"somename"]
    
    0 讨论(0)
  • 2020-12-30 23:06

    Just try something like this:

    NSDictionary *jsonObj = [NSDictionary dictionaryWithObjectsAndKeys:@"My Name", @"name", @"Developer", @"occupation", NULL, @"My NULL field", nil];
    

    and use this object as parameter where you want it.

    0 讨论(0)
  • 2020-12-30 23:22

    You have to use NSNull. For instance

    Swift

    let dict = ["firstKeyHasValue": 2342, "secondKeyHasNoValue": NSNull()]
    

    Objective-C

    NSDictionary *dict = @{ @"error": [NSNull null] };
    

    From the official documentation of NSDictionary:

    Neither a key nor a value can be nil; if you need to represent a null value in a dictionary, you should use NSNull.

    0 讨论(0)
提交回复
热议问题