You could try using Json.NET to parse it. It generally works a lot better than DataContractJsonSerializer and has better performance. I'm not sure if that would solve your problem though.
If you think about it, what would the resulting object look like in C#? From a JSON string like this...
{
"name" : { "first" : "James" }
}
...I would expect to map to a C# object with a "name" property, and that "name" property would reference an object with a "first" property (which would be a string, with a value of "James").
So if you remove the key value "first", how will the parser know how to map (or how to name) the property? There's no such thing as a nameless property in C#.
I would suggest reformatting your Json file (if possible) to look like so:
{
"number":"23",
"name": "LJames",
"Gender":"Male",
...