There's a bug report on this issue on Mojang's bug tracker.
While the issue is confirmed, it was closed as an invalid bug, since it's an effect of downgrading versions. To quote:
Downgrading from newer versions to older versions may have undesired behavior, please back up your worlds before testing snapshots.
Upgrading to a snapshot may also corrupt worlds, please back up your world before testing. [...] Going from a 1.8 snapshot to 1.7.5, 1.7.6, 1.7.7, 1.7.8, and 1.7.9 is considered a downgrade!
The specific issue you are facing has come up in Snapshot 14w03a, specifically
- NBT data in commands can now use block/item names in place of numerical ids
- Old ids still work, but are being phased out slowly
- Other occurrences of blocks/items now need to be named ids
- Regular IDs in commands no longer work. /give [player] 1 is now /give [player] stone .
Since you upgraded from a 1.7.9 to 14w21a (presumably), this change has taken effect. All items in the game save were converted to the new NBT format on world load. 1.7 doesn't know these weird items called "stone", "dirt" or "diamond_sword", it knows only "1", "3" and "276". The game therefore deletes the items, as Minecraft always does with unknown items.
As to why your backup doesn't work, I have no idea. I suggest you try again, and be careful not to open the world in a 1.8 snapshot if you don't plan on playing in that version. If your backup has been run in a 1.8 snapshot already, continue playing in 14w21b and don't downgrade to 1.7.
To prevent these problems in the future, you should set a different save directory in the profile for the snapshot (see my answer here) so that your regular world doesn't show up at all.