Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

how is a nil map not null? It certainly isn’t a zero-valued map, that would be {}.


The zero value of a map is indeed nil in Go: This prints true (https://go.dev/play/p/8dXgo8y2KTh):

    var m map[string]int
    println(m == nil)


Ok, true!


It should be marshaled into {} by default, with a opt-out for special use cases.

There’s a simple reason: most JavaScript parsers reject null. At least in the slice case.


Not sure what you mean here by "most JavaScript parser rejects null" - did you mean "JSON parsers"? And why would they reject null, which is a valid JSON value?

It's more that when building an API that adheres to a specification, whether formal or informal, if the field is supposed to be a JSON array then it should be a JSON array. Not _sometimes_ a JSON array and _sometimes_ null, but always an array. That way clients consuming the JSON output can write code consuming that array without needing to be overly defensive




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: