kenlistian

勤学多思

  IT博客 :: 首页 :: 新随笔 ::  :: 聚合  :: 管理 ::
  412 随笔 :: 0 文章 :: 23 评论 :: 0 Trackbacks

JSON (Javascrīpt Object Notation)

优点:
1. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小
2. 易于解析这种语言, 客户端Javascrīpt可以简单的通过eval()进行JSON数据的读取
3. 支持多种语言, 包括Actionscrīpt, C, C#, ColdFusion, Java, Javascrīpt, Perl, PHP, Python, Ruby等语言服务器端语言, 便于服务器端的解析
4. 在PHP世界, 已经有PHP-JSON和JSON-PHP出现了, 便于PHP序列化后的程序直接调用. PHP服务器端的对象、数组等能够直接生JSON格式, 便于客户端的访问提取.
   另外PHP的PEAR类已经支持 (http://pear.php.net/pepr/pepr-proposal-show.php?id=198)
5. 因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护

缺点:
  没有XML格式深入人心和使用广泛, 没有XML那么通用性

 

xml和son的对比:

xml:

<menu id="file" value="File" >

<popup>

<menuitem value="New" onclick="CreateNewDoc()" />

<menuitem value="Open" onclick="OpenDoc()" />

<menuitem value="Close" onclick="CloseDoc()" />

</popup>

</menu>

son:

{"menu": {

"id": "file",

"value": "File:",

"popup": {

"menuitem": [

{"value": "New", "onclick": "CreateNewDoc()"},

{"value": "Open", "onclick": "OpenDoc()"},

{"value": "Close", "onclick": "CloseDoc()"}

]}

}}

以上可见:

1。对象object包含在{}中,

2。对象的属性member使用string : value 成对出现,属性与属性之间用逗号隔开,

3。数组array在[]中,如:[ elements ]

4。元素elements与元素之间用逗号隔开 elements , elements

5。元素值可具有的类型:string, number, object, array, true, false, null

 

应用范围;

     JSON主要用在AJAX中,由于在客户端使用JavaScript脚本,故使用JSON,将使得进程的响应变得更快

 

 

 

如何在asp中组织json

  很多语言支持json的编码和解码。php5.2以上,ruby等皆有对应的处理,在asp中需要自己去写,幸好网上有很多例子,

下面也列出一个asp把array数组组织到json的例子。

 

 'root json 数据名

Function json_encode(root , arr_data)
    If root = "" Then root = "root"

    str_Head = "{" & Chr(13) & Chr(9) & Chr(9) & root & ":{ " & Chr(13) & Chr(9) & Chr(9) &Chr(9) & Chr(9) & "arrs:[ " & Chr(13)

    str_Body = chr(9) & chr(9) & chr(9) & chr(9) & chr(9) & "{" 
    str_End =  "}" & Chr(13) & chr(9) & chr(9) & chr(9) & chr(9) & "]" & chr(13) & chr(9) & chr(9) & "}" &chr(13) & "}"
    for i = 0 to ubound(arr_data) - 1  
       str_Body = str_Body & chr(34) &  i  & chr(34) &":"          '   name
       str_Body = str_Body & chr(34) & arr_data(i) & chr(34) & ","    'value
    Next

    '去除记录最后一个字段后的","
    str_Body = left(str_Body,instrrev(str_Body,",")-1)
    json_encode = str_Head & str_Body + str_End

End Function

posted on 2008-04-08 13:29 kenlistian 阅读(13221) 评论(0)  编辑 收藏 引用 所属分类: WEB
只有注册用户登录后才能发表评论。