tl;dr;
I will keep the first solution.
Arguments
Solution 1
JSON is a standard ! You can use any library that you want and even change from to another if you have any problem ! Moreover, JSON is a lightweight format.
Also, transferring the data this way, you will be able to store as you want : with the same scheme or with another one; you will be able to remove useless data, ...
The only problem : you cannot validate that the data you received are like you think. You will have to handle the verification on your mobile.
Solution 2
I think that this solution is just the same that with the JSON one, but using a really ugly format... I will definitely not use it !
Solution 3
You will send a binary file through the network. If something bad happened, you will not be able to know it before trying to open the DB and see that it fails.
Moreover, you are stuck with the DB scheme that your server decides. I think it's way better to let your device handle the DB scheme by itself. The server is responsible to transfer correctly formatted data. Then, your device is responsible to store them the way it wants.