JSON

WEB开发

JSON最开始被广泛的应用于WEB应用的开发。不过当前JSON使用在JavaScript、Java、Node.js应用的情况比较多，PHP、C#等开发的WEB应用主要还是使用XML。

NoSQL数据库

相对于传统的关系型数据库，一些基于文档存储的NoSQL非关系型数据库选择JSON作为其数据存储格式，比较出名的产品有：MongoDB、CouchDB、RavenDB等。

举例

1 { 2      "firstName": "John", 3      "lastName": "Smith", 4      "sex": "male", 5      "age": 25, 6      "address": 
 7      { 8          "streetAddress": "21 2nd Street", 9          "city": "New York",10          "state": "NY",11          "postalCode": "10021"12      },13      "phoneNumber": 
14      [15          {16            "type": "home",17            "number": "212 555-1234"18          },19          {20            "type": "fax",21            "number": "646 555-4567"22          }23      ]24  }
这种JSON格式也被Minecraft游戏用来当作的部分数据存储的格式：
 1 [ 2      { 3           "text": "This is the text", 4           "color": "dark_red", 5           "bold": "true", 6           "strikethough": "true", 7           "clickEvent": 8                { 9                     "action": "open_url",10                     "value": "zh.wikipedia.org"11                },12           "hoverEvent":13                {14                     "action": "show_text",15                     "value":16                     {17                          "extra": "something"18                     }19                }20      },21      {22           "translate": "item.dirt.name",23           "color": "blue",24           "italic": "true"25      }26 ]

读取JSON

由于JSON是JavaScript的子集，所以一般都会使用eval()作为读取数据的方式，如果是针对可靠的数据来源，在不支持原生JSON解析的浏览器上面这是最快速的方法。然而由于eval方法同样可以执行任意的JavaScript代码，因此当数据来源不可靠时则可能产生安全问题。如下面的例子，直接用eval执行时会跳转：
var json= eval("{message:(function (){ window.location='http://zh.wikipedia.org/wiki/JSON#.E5.AE.89.E5.85.A8.E6.80.A7.E5.95.8F.E9.A1.8C'; })()}");
其中一种防止不安全代码出现的解决办法，是通过浏览器原生支持的JSON.parse（str）方法读取JSON数据，当前已经得到大部分主流浏览器的支持（IE8+，Firefox 3.5+，Chrome4+/Safari4+，Opera10+），在不支持原生JSON对象的浏览器上面可以使用parseJSON方法进行读取，parseJSON采用解析器验证读入的代码是否真的是JSON代码，这样就更安全。但由于这是用模拟的方式读取，速度上会比eval()慢。

跨站访问问题

另外一个安全上的问题则是跨站请求伪造（Cross-site request forgery，简称CSRF或XSRF）。这个问题在Javascript中的状况是，由于Javascript采用了称为“沙盒”的机制，这种机制限制Javascript引擎仅能引入同一个站点的代码，因而某种程度上提高了安全性。

XML

JSON与XML最大的不同在于XML是一个完整的标记语言，而JSON不是。这使得XML在程序判读上需要比较多的功夫。主要的原因在于XML的设计理念与JSON不同。XML利用标记语言的特性提供了绝佳的延展性（如XPath），在数据存储，扩展及高级检索方面具备对JSON的优势，而JSON则由于比XML更加小巧，以及浏览器的内建快速解析支持，使得其更适用于网络数据传输领域。

MessagePack

MessagePack宣称比JSON更短小，快速。

格式化工具

JSON格式取代了XML给网络传输带来了很大的便利，但是却没有了XML的一目了然，尤其是JSON数据很长的时候，会让人陷入繁琐复杂的数据节点查找中。开发者可以通过在线JSON格式化工具，来更方便的对JSON数据进行节点查找和解析。