json系列文章——json的使用
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。使用json可以方便地在前段和服务器之间传递消息。JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。本文简单介绍一下json的使用。
一、后台传递过来的是json对象(数组)
这种情况下,java程序需要几个包(见附件json-jar.rar)的支持,使用时需要将其加入到环境变量中。这时,后台程序应该这样写:
public void jsonTest(){
//新建一个json对象数组
JSONArray jsonArray=new JSONArray();
//新建一个json对象,并放入两个键值对,可以理解为一个属性名和一个属性值
JSONObject jObject1=new JSONObject();
jObject1.accumulate("key1","value11");
jObject1.accumulate("key2","value12");
//将json对象翻入对象组中
jsonArray.add(jObject1);
JSONObject jObject2=new JSONObject();
jObject2.accumulate("key1","value21");
jObject2.accumulate("key2","value12");
jsonArray.add(jObject2);
//返回json对象
HttpServletResponse response=ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
response.setContentType("text/xml");
try {
response.getWriter().print(jsonArray);
} catch (IOException e) {
e.printStackTrace();
}
}
在前台可以通过以下方式获取json对象并使用其中的数据:
$.getJSON(
"/ygmy/getProClass?proClass.proClass.proclassid=5",//获取json数组(对象)的url
function(data){//获取到json数组(对象)后的回调函数
$.each(data,function(i,item){
alert(item.key);//使用json中的值
});
}
)
上述代码中的方法$.getJSON()是jQuery对json特殊支持的方法,有关次方法的详细介绍可以参考附件jquery.rar中的jQuery_API_1.5.chm,在使用这个方法时需要在页面中引入附件jquery.rar中的jquery-1.5.1.js
二、后台传递过来的是json格式的字符串
正常情况下,从java后台传递过来的都是字符串而非json对象(组)。这时,我们只需要将字符串按照一定格式拼接起来,然后调用javascript的eval方法即可生成json对象(组)。下边介绍一个例子,通过ajax从后台读取一个字符串,在前台用eval函数生成json对象数组,然后调用。
后台的程序如下所示:
public String forProManagement(){
HttpServletRequest request=ServletActionContext.getRequest();
List<ProClass> proClassBos=proClassDAO.searchProClasses(proClass);
request.setAttribute("proClasses", proClassBos);
String jsonStr="{ \"employees\" : [" +
"{ \"firstName\":\"Bill\" , \"lastName\":\"Gates\" }," +
"{ \"firstName\":\"George\" , \"lastName\":\"Bush\" }," +
"{ \"firstName\":\"Thomas\" , \"lastName\":\"Carter\" } ]}";
request.setAttribute("jsonStr", jsonStr);
return "success";
}
前台js代码如下所示:
$.post(
"/ygmy/getProClass?proClass.proClass.proclassid=5",
function(data){
alert(data);//此处弹出的是后台拼接的字符串
var obj = eval ("(" + data + ")");
alert(obj);//经过处理后,此处弹出的是[object],即对象数组,此处可参照上一段js代码使用数据
}
)
当然也可以再后台将字符串放在request里,前台通过request.getAttribute();读取,然后再进行处理。要怎样实现,可根据具体情况进行选择。
分享到:
相关推荐
本篇文章将详细介绍json-lib的使用方法。 首先,json-lib提供了两个主要的功能:JSON对象的生成和解析。对于生成JSON,你可以将Java对象转换为JSON格式,这对于向服务器发送数据或保存配置文件非常有用。例如,一个...
在“使用JSON向服务器发送数据——ajax基础笔记”这个主题中,我们首先会了解如何创建一个XMLHttpRequest对象。在JavaScript中,你可以通过`new XMLHttpRequest()`来实例化一个对象,然后利用它的方法如`open()`、`...
本篇文章将探讨如何使JSON文件内容在写入时以换行方式显示,提高代码的可读性。 问题的核心在于`json.dump()`函数的默认行为。在上述例子中,最初使用如下代码写入JSON数据: ```python new_dict = {"version": ...
本篇文章将深入探讨如何在Linux系统下使用C语言封装的JSON库——cJSON,帮助开发者轻松地进行JSON数据的打包和解析。 cJSON是一个小型、快速且易于使用的JSON解析器,由David John Millman编写。它为C程序员提供了...
最久项目需要使用ECharts,需要多个图表通过ajax动态获取json数据实现各种选择条件的多图表,找了一下网络上的相关文章,发现都比较繁琐(因为在前台操作的太多我是做后台的)所以想出了这样的方式实现,引入的json...
大佬文章——Pandas处理JSON数据 JSON入门详解 JSON文件内容 [ { "name": "Sam", "id": "20200227" }, { "name": "Bob", "id": "20200228" }, { "name": "Tim", "id": "20200229" } ] Python代码 ...
本篇文章将深入探讨一个在GitHub上发现的C语言JSON解析库——"cJSON"。 **cJSON库介绍** cJSON是一个开源的、轻量级的JSON解析器和生成器,专为C语言设计。它的主要特点是体积小、效率高、易于集成到项目中。cJSON...
文章还详细介绍了 JSON 的使用方法,如从 web 服务器上读取 JSON 数据、将 JSON 数据转换为 JavaScript 对象、在网页中使用该数据等。 在数据传输过程中,日期格式的处理是一个重要的方面。OADate 是一种特殊的日期...
在C++编程中,处理JSON数据通常需要借助专门的库,本篇文章将介绍一个高效且跨平台的JSON库——libjson,它适用于Windows和Linux操作系统。 libjson是一个用C++编写的开源库,其主要目标是提供快速、小巧且易于使用...
3. **org.json库**:Android SDK内置了一个简单的JSON库——org.json,它提供了JSONObject和JSONArray类来处理JSON数据。虽然功能相对有限,但对于简单的需求来说已经足够。 4. **JSONParser**:Android SDK还提供...
本篇文章将深入探讨如何在面对复杂的JSON内容时,利用C#来实现对象的反序列化,并推荐一款实用的工具——JsonCSharpClassGenerator。 在C#中,反序列化是将JSON字符串转换为等效的C#类实例的过程。这使得我们可以...
本篇文章将详细探讨C++中用于解析JSON的库——jsoncpp。 jsoncpp是一个开源库,专门设计用来解析和生成JSON数据。它提供了方便的API,使得C++开发者能够轻松地将JSON字符串转换为C++对象,以及将C++对象序列化为...
本篇文章将深入探讨如何使用C#和Newtonsoft.Json库来操作JSON数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Web服务和前后端交互、...
本篇文章将深入探讨如何创建一个简单的JSON数据格式转换类,并分析提供的两个源代码文件——`JsonUtil.java`和`Json.java`。 在Java中,处理JSON数据通常有多种库可供选择,如Gson、Jackson、Fastjson等。然而,...
panoptic_train2017.json panoptic_val2017.json 这里面就是那92类的stuff,用于全景分割任务(不同的一类物体区分出来),请与5.2作对比,可视化如下: ———————————————— 版权声明:本文为CSDN...
本篇文章将重点讨论在SpringMVC中如何处理与JSON相关的数据返回。 1. JSON工具 在处理JSON时,我们通常会使用一些库来简化操作。Fastjson是阿里巴巴提供的一个高效且易用的Java库,它不仅支持JSON对象与Java对象...
最终,作者选择了C语言的JSON库——json-c。这个决定基于Google上的一篇文章,该文比较了多个C语言JSON库,并指出json-c具有良好的兼容性和对中文的支持(通过UTF-8编码)。json-c作为C语言库的优势在于它的轻量级、...