jwaliszko
jwaliszko

Reputation: 17064

Why JSON empty string deserializes to null at the server side?

I'm sending empty string through $.post and it deserializes to null. How to differentiate if the string was empty or null at the client side ?

Regards

UPDATE What I'm actually doing is:

$.post("Controller/Action", $.param({Name: ""}, true), null, "json");

at the server:

public Container
{
   public string Name;
}

public void Action(Container container)
{
    bool c = container.Name == null;   // c is true, why ?     
}

Upvotes: 10

Views: 1760

Answers (2)

Philippe Leybaert
Philippe Leybaert

Reputation: 171774

What do you mean by "empty string" ?

The JSON representation of an empty string is "", not an empty string. An empty string actually means "nothing", so null

Upvotes: 2

frisco
frisco

Reputation: 1917

A variable with empty value is written in JSON as:

{ "var" : "" }

An empty string is parsed as null as there is no object defined in it.

Upvotes: 2

Related Questions