大致说明JSON 对象的相关使用字符
创始人
2024-06-19 21:20:34
0

简单地说,JSON 对象可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。

这个字符串看起来有点儿古怪(稍后会看到几个示例),但是 JavaScript 很容易解释它,而且 JSON 可以表示比名称/值对更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。

当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性:

  1. { "programmers": [  
  2.     { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },  
  3.     { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },  
  4.     { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }  
  5.    ],  
  6. "authors": [  
  7.     { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },  
  8.     { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },  
  9.     { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }  
  10.    ],  
  11. "musicians": [  
  12.     { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },  
  13.     { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }  
  14.    ]  

至此,您应该从技术角度对如何在服务器端处理 JSON 有了基本的把握。本篇文章和本系列的 第 10 部分 不仅提供了技术层面的帮助,而且还向您展示了 JSON 是一种多么灵活、强大的数据格式。即使您不会在每个应用程序中都使用 JSON,但优秀的 Ajax 和 JavaScript 程序员的工具箱中总少不了 JSON 以备不时之需。#t#

我当然很希望能够分享您的JSON 对象使用经验以及您对何种语言更善于在服务器端处理 JSON 数据的高见。您可以访问 Java 和 XML 新闻组(有关链接,请参阅 参考资料 部分)跟我联系。享受JSON 对象和文本数据格式的乐趣吧。

  1. public void doPost(HttpServletRequest request, HttpServletResponse response)  
  2. throws ServletException, IOException {  
  3.  
  4. StringBuffer jb = new StringBuffer();  
  5. String line = null;  
  6. try {  
  7.     BufferedReader reader = request.getReader();  
  8.     while ((line = reader.readLine()) != null)  
  9.       jb.append(line);  
  10. } catch (Exception e) { //report an error }  
  11.  
  12. try {  
  13.     JSONObject jsonObject = new JSONObject(jb.toString());  
  14. } catch (ParseException e) {  
  15.     // crash and burn  
  16.     throw new IOException("Error parsing JSON request string");  
  17. }  
  18.  
  19. // Work with the data using methods like...  
  20. // int someInt = jsonObject.getInt("intParamName");  
  21. // String someString = jsonObject.getString("stringParamName");  
  22. // JSONObject nestedObj = jsonObject.getJSONObject("nestedObjName");  
  23. // JSONArray arr = jsonObject.getJSONArray("arrayParamName");  
  24. // etc...  

尽管看起来不明显,但是上面的长字符串实际上只是一个数组;将这个数组放进 JavaScript 变量之后,就可以很轻松地访问它。实际上,只需用点号表示法来表示数组元素。所以,要想访问 programmers 列表的***个条目的姓氏,只需在 JavaScript 中使用下面这样的代码:

  1. String newJSONtext = people.toJSONString();     //value is "McLaughlin" 

不管在服务器端使用何种语言,在服务器端处理JSON 对象基本上就需要两个步骤:
1.针对编写服务器端程序所用的语言,找到相应的 JSON 解析器/工具箱/帮助器 API。
2.使用 JSON 解析器/工具箱/帮助器 API 取得来自客户机的请求数据并将数据转变成脚本能理解的东西。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...