`

json系列文章——json的使用

 
阅读更多

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-lib提供了两个主要的功能:JSON对象的生成和解析。对于生成JSON,你可以将Java对象转换为JSON格式,这对于向服务器发送数据或保存配置文件非常有用。例如,一个...

    7、使用JSON向服务器发送数据——ajax基础笔记

    在“使用JSON向服务器发送数据——ajax基础笔记”这个主题中,我们首先会了解如何创建一个XMLHttpRequest对象。在JavaScript中,你可以通过`new XMLHttpRequest()`来实例化一个对象,然后利用它的方法如`open()`、`...

    Python 写入json文件内容换行显示(csdn)————程序.pdf

    本篇文章将探讨如何使JSON文件内容在写入时以换行方式显示,提高代码的可读性。 问题的核心在于`json.dump()`函数的默认行为。在上述例子中,最初使用如下代码写入JSON数据: ```python new_dict = {"version": ...

    linux c语言封装的json使用

    本篇文章将深入探讨如何在Linux系统下使用C语言封装的JSON库——cJSON,帮助开发者轻松地进行JSON数据的打包和解析。 cJSON是一个小型、快速且易于使用的JSON解析器,由David John Millman编写。它为C程序员提供了...

    ECharts多个图表图动态ajax获取json数据——全网最便捷的调用方式.rar

    最久项目需要使用ECharts,需要多个图表通过ajax动态获取json数据实现各种选择条件的多图表,找了一下网络上的相关文章,发现都比较繁琐(因为在前台操作的太多我是做后台的)所以想出了这样的方式实现,引入的json...

    Pandas高效加载JSON文件

    大佬文章——Pandas处理JSON数据 JSON入门详解 JSON文件内容 [ { "name": "Sam", "id": "20200227" }, { "name": "Bob", "id": "20200228" }, { "name": "Tim", "id": "20200229" } ] Python代码 ...

    json解析库C语言版

    本篇文章将深入探讨一个在GitHub上发现的C语言JSON解析库——"cJSON"。 **cJSON库介绍** cJSON是一个开源的、轻量级的JSON解析器和生成器,专为C语言设计。它的主要特点是体积小、效率高、易于集成到项目中。cJSON...

    JSON数据传输大法第一式——用OADate处理日期格式.doc

    文章还详细介绍了 JSON 的使用方法,如从 web 服务器上读取 JSON 数据、将 JSON 数据转换为 JavaScript 对象、在网页中使用该数据等。 在数据传输过程中,日期格式的处理是一个重要的方面。OADate 是一种特殊的日期...

    非常高效的json库,C++编写,windows,linux都可用

    在C++编程中,处理JSON数据通常需要借助专门的库,本篇文章将介绍一个高效且跨平台的JSON库——libjson,它适用于Windows和Linux操作系统。 libjson是一个用C++编写的开源库,其主要目标是提供快速、小巧且易于使用...

    Android_JSON.zip

    3. **org.json库**:Android SDK内置了一个简单的JSON库——org.json,它提供了JSONObject和JSONArray类来处理JSON数据。虽然功能相对有限,但对于简单的需求来说已经足够。 4. **JSONParser**:Android SDK还提供...

    c# 复杂json内容 转对象工具

    本篇文章将深入探讨如何在面对复杂的JSON内容时,利用C#来实现对象的反序列化,并推荐一款实用的工具——JsonCSharpClassGenerator。 在C#中,反序列化是将JSON字符串转换为等效的C#类实例的过程。这使得我们可以...

    json解析器 c++版本

    本篇文章将详细探讨C++中用于解析JSON的库——jsoncpp。 jsoncpp是一个开源库,专门设计用来解析和生成JSON数据。它提供了方便的API,使得C++开发者能够轻松地将JSON字符串转换为C++对象,以及将C++对象序列化为...

    C#json 操作

    本篇文章将深入探讨如何使用C#和Newtonsoft.Json库来操作JSON数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Web服务和前后端交互、...

    一个简单的JSON 数据格式转换类

    本篇文章将深入探讨如何创建一个简单的JSON数据格式转换类,并分析提供的两个源代码文件——`JsonUtil.java`和`Json.java`。 在Java中,处理JSON数据通常有多种库可供选择,如Gson、Jackson、Fastjson等。然而,...

    【java框架】SpringMVC(4) -- JSON相关的数据返回(csdn)————程序.pdf

    本篇文章将重点讨论在SpringMVC中如何处理与JSON相关的数据返回。 1. JSON工具 在处理JSON时,我们通常会使用一些库来简化操作。Fastjson是阿里巴巴提供的一个高效且易用的Java库,它不仅支持JSON对象与Java对象...

    JSON-C库的源码

    最终,作者选择了C语言的JSON库——json-c。这个决定基于Google上的一篇文章,该文比较了多个C语言JSON库,并指出json-c具有良好的兼容性和对中文的支持(通过UTF-8编码)。json-c作为C语言库的优势在于它的轻量级、...

    查看json结构的小工具

    在描述中提到了一个博客链接:“https://jphfly-163-com.iteye.com/blog/1819727”,这个链接指向的是一个ITEYE博主的博客文章,很可能详细介绍了如何使用特定的JSON查看工具,可能包括其功能、使用方法、安装步骤...

Global site tag (gtag.js) - Google Analytics