XML stands for extensible markup language. There is a lot of hype over XML and it is talked about as if its a revolutionary programming language, but really it is not. It is nothing more than a way to structure data so that it can be processed and used on any platform or in any app (that is designed to use XML, that is) and in fact, it has been around for 10 years.
JSON stands for Javascript Object Notation which is a data structuring format that is extremely clean and lightweight. Even though JSON is native to javascript (as in, it can be turned into an object directly by javascript), it is quite easy to handle with other languages, making it an ideal replacement of XML when javascript is involved with the exchange of data (i.e. ajax).