Remember that user extended fields are not only in a JSON object, they are in a different table than the users. A query on the modUser object won't get you much of value except the user id and username.
http://bobsguides.com/modx-object-quick-reference.html#modUser
You'd have to either query the modUserProfile object (if you know the user ID, or don't care about it), or do a join between the modUser and modUserProfile.
It's possible to do that with $modx->getCollectionGraph(), but as Michael Engel says, you'd need a funky where clause to grab the objects you want.
If speed is an issue, one fast method is to store the information in an unused field of the modUserProfile object (e.g., phone, fax, country, etc.). That makes everything simple and quite fast, but as Everett says, not architecturally correct. Be careful of the length of each field, which you can see in the fieldmeta section here:
http://bobsguides.com/modx-object-full-reference.html#modUserProfile
Another way to go, if you won't be using the user messaging system in the Manager for anything, is to use that table to store everything (using a plugin connected to something like the OnUserFormSave event to update it).
http://bobsguides.com/modx-object-quick-reference.html#modUserMessage. You could put the user's userId in the 'recipient' field and whatever you want in the 'subject' and 'message' fields. I've never done that, but can't see why it wouldn't work, assuming that the fields are long enough for what you want (subject is 255, and 'message' is a text field, so lots of room there).
Of course, the 'correct' method is to create your own custom table containing whatever information you need as Everett suggested. Making it xPDO-friendly is a great help, and there's a utility to help you do that here:
http://bobsguides.com/custom-db-tables.html. Then you could use $modx->getCollectionGraph() to get everything you want, sorted however you want in a single query to the DB.