`

客户端处理JSON响应

阅读更多
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,而且它是基于JavaScript 的。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript 等)。这些特性使JSON成为理想的数据交换语言。
JSON有两种结构:
“名/值”对的集合(A collection of name/value pairs)。在不同的语言中,它被理解为对象,结构,关联数组等
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

对象是一个无序的“名/值”对集合。一个对象以“{”开始,“}”结束。每个“名称”后跟一个“:” ;“名/值”对之间使用“,” 分隔:


数组是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔:


字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套
数值(number)与C或者Java的数值非常相似。

JSON示例
下面的JSON表示名称/值对:
{ "firstName": "Brett" }
多个名称/值对串在一起:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }
从语法方面来看,这与名称/值对相比并没有很大的优势,但是在这种情况下 JSON
更容易使用,而且可读性更好
当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性:
{ “employees": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
] }
这比相应的XML格式表示的数据更加简洁:


在JavaScript中使用JSON:

JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的 API 或工具包。
将JSON数据赋值给变量:
var company =
{ “employees": [
        { "firstName": "Brett", "lastName":"McLaughlin", "email": brett@newInstance.com" },
        { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
        { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
     ]
};
这样将创建一个JavaScript对象


以JavaScript对象的方式访问数据,如获取第一个雇员的firstName信息:
company.employees[0].fristName
正如可以用点号和括号访问数据,也可以按照同样的方式轻松地修改数据:
company.employees[0].fristName=“Vincent”



服务器端返回JSON相应的文本表示,如:
{“city” : “Hefei”, “province” : “Anhui”}
客户端使用eval()函数将JSON文本转化为JavaScript对象:

注意,使用额外的圆括号可使eval()函数将来源输入无条件地视为表达式进行解析。
然后从JavaScript对象中取得相应的值:
document.getElementById("city").value=response.city;
document.getElementById("province").value=response.province;


JSON vs XML:

可读性
JSON和XML的可读性可谓不相上下,XML略占上风。

可扩展性
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

编码难度
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。

解码难度
XML的解析得考虑子节点父节点关系,让人头昏眼花,而JSON的解析难度几乎为零。

流行度
XML已经被业界广泛的使用,而JSON才刚刚开始,但在Ajax领域,JSON凭借自身的优势有可能最终取代XML。



var sJson={
"product":
[
{
"temLink":"http://www.haiziwang.com/product/detail/59f41a5809084ed88d339825991ca253.html",
"imageLink":"http://www.haiziwang.com/images/product/59/f4/59f41a5809084ed88d339825991ca253_logo_n.jpg",
"itemPrice":"208.00 ",
"itemLink":"http://www.haiziwang.com/product/detail/59f41a5809084ed88d339825991ca253.html",
"itemName":"== 001==妈咪宝贝瞬吸干爽纸尿裤L男"
},
{
"temLink":"http://www.haiziwang.com/product/detail/530773ed236540e68b64fa81a10099d3.html",
"imageLink":"http://www.haiziwang.com/images/product/53/07/530773ed236540e68b64fa81a10099d3_logo_n.jpg",
"itemPrice":"138.00 ",
"itemLink":"http://www.haiziwang.com/product/detail/530773ed236540e68b64fa81a10099d3.html",
"itemName":"== 002==【含VA、VD及DHA关键营养】动力宝宝双鱼油60粒22.8g(1-3岁)"
},
{
"temLink":"http://www.haiziwang.com/product/detail/59f41a5809084ed88d339825991ca253.html",
"imageLink":"http://www.haiziwang.com/images/product/59/f4/59f41a5809084ed88d339825991ca253_logo_n.jpg",
"itemPrice":"208.00 ",
"itemLink":"http://www.haiziwang.com/product/detail/59f41a5809084ed88d339825991ca253.html",
"itemName":"== 003==妈咪宝贝瞬吸干爽纸尿裤L男132片"
}

],"Consumer_id":"8tg8s0v8f"
}
alert(sJson.product[0].itemName);
alert(sJson.Consumer_id);
分享到:
评论

相关推荐

    Spring处理json,客户端处理json

    在这里,可能有一个JavaScript文件用于处理AJAX请求和解析JSON响应。 7. **构建配置**: `.classpath`、`.project`和`.settings`文件是Eclipse IDE的项目配置文件,它们包含了关于项目的构建路径、编译器设置等...

    C# WebService 客户端 服务器 Json

    2. Newtonsoft.Json库:除了.NET内置的Json处理,还可以使用流行的第三方库Newtonsoft.Json(也称为Json.NET)。它提供了更强大的功能和更高的性能,如`JsonConvert.DeserializeObject`和`JsonConvert....

    json客户端与服务端通信

    5. **返回JSON响应**:服务端处理完请求后,可以将结果封装成JSON,通过`HttpServletResponse`的`write()`方法回传给客户端。仍以Jackson为例: ```java mapper.writeValue(response.getOutputStream(), result); ...

    服务端生成json和客户端获取json的demo

    这里以Python的Flask框架为例,介绍如何生成JSON响应。首先,需要安装Flask库(如果尚未安装): ```bash pip install flask ``` 接着创建一个简单的Flask应用,生成并返回JSON: ```python from flask import ...

    android客户端获取json

    在Android应用开发中,与服务器进行数据交互是常见的需求,其中JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于客户端与服务端之间的数据传输。本教程将聚焦于如何在Android客户端利用...

    TCP收发json. 客户端和服务端

    在TCP连接中,存在客户端和服务器两端,客户端发起连接请求,服务器响应并建立连接。 接下来,QT是一个跨平台的C++开发框架,特别适合GUI应用和网络通信。QT Creator是其配套的集成开发环境,提供了方便的开发工具...

    JSon转换Sturs2的AJAX的应用

    以上内容详细介绍了JSON转换和在Sturts2中使用AJAX的应用,包括JSON格式、AJAX原理、Struts2的JSON支持以及客户端如何处理JSON响应。在实际开发中,这些知识将帮助你构建高效、交互性强的Web应用。

    SSH为android客户端返回json数据,demo1

    总结来说,这个主题涵盖了Android客户端通过SSH协议获取服务器返回的JSON数据,涉及SSH连接、JSON解析、并发处理等技术,对于学习Android网络编程和数据处理的开发者具有很高的参考价值。理解并掌握这一系列操作,...

    关于使用json传递数据给客户端的例子

    在服务端,我们通常使用编程语言如Python(使用Flask或Django框架)、Java(使用Spring Boot)或PHP(使用Laravel)等来处理数据库查询并构建JSON响应。以Python的Flask为例,以下是一个简单的示例: ```python ...

    Android高级应用源码-客户端与服务端的json交互的小例子.rar

    3. Android客户端接收JSON响应: 服务器返回的JSON数据,可以通过OkHttp的Response对象获取。解析JSON数据,可以使用Gson或org.json库。Gson库提供了fromJson()方法将JSON字符串转化为Java对象;而org.json库则提供...

    Android客户端用Json与Asp.Net服务器交互信息

    在Android客户端,收到服务器的Json响应后,也需要将其解析成相应的对象。可以使用Gson或Jackson库来完成这项工作。例如,如果服务器返回了一个用户信息的Json对象: ```json { "id": 1, "name": "John Doe", ...

    JavaEE知识与数据库连接实现增删改查功能,客户端使用json格式发增删改查用户的请求

    完成操作后,Servlet应返回一个JSON响应告知客户端操作结果。可以创建一个新的JSON对象,包含状态码和消息,然后使用`HttpServletResponse`的`getOutputStream()`写入JSON字符串。 8. **最佳实践** 为了保持代码...

    cpp-libjsonrpccpp用于C服务器和客户端的JSONRPC框架

    libjson-rpc-cpp是C++语言实现的一个开源库,专门用于构建JSON-RPC服务器和客户端应用。这个框架为开发人员提供了一种简单、高效的方式来进行跨平台的通信,支持HTTP和TCP/IP协议,同时还提供了异步调用的能力。 ...

    android客户端json解析

    本教程将详细介绍如何在Android客户端进行JSON解析,以获取并处理来自Web服务器的数据。 首先,理解JSON的基本结构至关重要。JSON是一种基于文本的格式,它以键值对的形式存储数据,类似于JavaScript的对象。一个...

    客户端与服务端的json交互的小例子

    在提供的压缩包文件中,"android_web_json"可能是一个Android应用示例,展示了如何在Android客户端使用HttpURLConnection或Retrofit等库发送JSON请求以及解析JSON响应。"本源码使用帮助.txt"可能提供了代码的使用...

    Json数据解析服务器端加客户端代码

    在这个“Json数据解析服务器端加客户端代码”中,我们可以预见到包含的是关于如何在服务器端和客户端处理JSON数据的代码示例。 在服务器端,JSON数据通常用于接收来自客户端的请求数据,或者作为响应发送回给客户端...

    Android Http (Json) 服务器端和客户端通信

    3. **错误处理**:在客户端与服务器通信时,必须考虑到网络问题、服务器响应超时、JSON数据解析错误等情况。因此,实现有效的错误处理机制是必要的,以确保应用程序的稳定性和用户体验。 #### 实战技巧与注意事项 ...

    JSON-RPC.rar+服务客户端通信+微服务架构应用

    JSON-RPC客户端开发 JSON-RPC服务器端开发 JSON-RPC安全性考虑 JSON-RPC跨域资源共享CORS JSON-RPC与WebSocket结合使用 JSON-RPC在微服务架构中的角色 JSON-RPC高级特性:通知与订阅 JSON-RPC实战:构建分布式应用

    Android客户端与服务器端的json数据交互(内含大量知识点)

    - 使用Postman或类似工具模拟服务器响应,便于测试客户端的JSON解析和数据处理逻辑。 - 使用MockWebServer可以本地模拟服务器行为,方便快速调试网络请求代码。 以上就是Android客户端与服务器端的JSON数据交互...

    Android客户端与服务器通信+json交互数据

    综上所述,Android客户端与服务器通信并使用JSON进行数据交互是一个涉及网络编程、JSON处理、服务器框架理解等多个层面的复杂过程。在实际开发中,需要对每个环节都有深入的理解,才能有效地实现客户端与服务器的...

Global site tag (gtag.js) - Google Analytics