.serializeArray() from jQuery is only a neat helper function to serialize form-data.
It builds its objects from the ground up. Here is the source for that.
If you want to submit your data as JSON, you simply

where should I serialize it to (when I've received data inside "done" callback): into a div or some js variable?
–
Alexander SupertrampJun 24 '14 at 10:33

The need for serialization is, to get JS-objects through the wire. so, if you want to POST it to the server, you serialize it. If you are receiving it from the server, it is already serialized - assuming, you used jQuery to do the job. You only have to use the result. When you receive the data, it depends, on what you are going to do with it.
–
Thomas JunkJun 24 '14 at 10:37

I receive it and I want to access the result from outside of .done(...) callback, in other words I want to pass the result around.
–
Alexander SupertrampJun 24 '14 at 11:36

The problem you are facing is that of a closure: you are passing a function into jQuery on whose return value, you have no access. There are several possible solutions to that: 1) callback. Within the closure you call a function from "outside" of the closure with "data" as a parameter 2) you could assign it to a variable outside of the closure, but have the problem, of not knowing when the variable is set. To circumvent that, you could make use of an eventmechanism.
–
Thomas JunkJun 24 '14 at 13:06