`
easy0917
  • 浏览: 260456 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JSON基本知识

    博客分类:
  • JSON
 
阅读更多
commons-beanutils-1.7.0.jar  
commons-lang-2.1.jar 
ezmorph-1.0.2.jar 
json-lib-1.1-jdk15.jar 
1. List集合转换成json代码
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
2. Map集合转换成json代码
Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject json = JSONObject.fromObject(map);
3. Bean转换成json代码
JSONObject jsonObject = JSONObject.fromObject(new JsonBean());
4. 数组转换成json代码
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
5. 一般数据转换成json代码
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );

[color=red]response.getWriter().write(jsonArray2.toString());[/color]

<html>
  <head>
    <title>My JSP 'json.jsp' starting page</title>
 <script type="text/javascript" src="js/jquery-1.3.2.js"></script>
 <script type="text/javascript">
  $(document).ready(function(){
  var txt = '{"employees":[' +
   '{"firstName":"Bill","lastName":"Gates" },' +
   '{"firstName":"George","lastName":"Bush" },' +
   '{"firstName":"Thomas","lastName":"Carter" }]}';
   
  var JSONObject= {
    "name":"Bill Gates",
    "street":"Fifth Avenue New York 666",
    "age":56,
    "phone":"555 1234567"};
  var book = '{"hcz":[{"author":"hong","author1":"honglou"},{"author":"hong1","author1":"honglou1"}]}';
   $("#btn").click(function(){
    var dataObject = eval("("+txt+")");
    alert(dataObject.employees[1].firstName);
   });
   $("#btn1").click(function(){
    alert(JSONObject.name);
   });
   $("#btn2").click(function(){
    var bookObject = eval("("+book+")");
    alert(bookObject.hcz[1].author);
   });
   
  });
 </script> 
  </head>  
  <body>
   <input type="button" value="Button0" id="btn" />
   <input type="button" value="Button1" id="btn1" />
    <input type="button" value="Button2" id="btn2" />
  </body>
</html>

 

package com.test;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * JSON和JAVA的POJO的相互转换
 * 
 * @author tanpingping
 * @date 2012-5-15
 */
public final class JSONUtils {
	/**
	 * 将String转换成JSON
	 * 
	 * @param key
	 * @param value
	 * @return json格式的字符串
	 */
	public String stringToJson(String key, String value) {
		JSONObject object = new JSONObject();
		object.put(key, value);
		return object.toString();
	}

	/**
	 * 将JSON转换成数组,其中valueClz为数组中存放的对象的Class
	 * 
	 * @param json格式的字符串
	 *            如:[{'name':'李名','password':'10aVB','age':'15'}]
	 * @param valueClz
	 *            需要转换的Class对象 如:User
	 * @return valueClz对象的数组
	 */
	@SuppressWarnings("unchecked")
	public Object jsonToArray(String json, Class valueClz) {
		JSONArray jsonArray = JSONArray.fromObject(json);
		return JSONArray.toArray(jsonArray, valueClz);
	}

	/**
	 * 将Collection转换成JSON
	 * 
	 * @param object
	 *            需要对象的值转换
	 * @return
	 */
	public String collectionToJson(Object object) {
		JSONArray jsonArray = JSONArray.fromObject(object);
		return jsonArray.toString();
	}

	/**
	 * 将JSON转换成Collection,其中collectionClz为Collection具体子类的Class,
	 * 
	 * @param json
	 * @param collectionClz
	 *            这个值没用到
	 * @param valueClz
	 *            为Collection中存放的对象的Class
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public Collection jsonToCollection(String json, Class collectionClz,
			Class valueClz) {
		JSONArray jsonArray = JSONArray.fromObject(json);
		return JSONArray.toCollection(jsonArray, valueClz);
	}

	/**
	 * 将数组转换成JSON
	 * 
	 * @param object
	 *            需要转换的数组
	 * @return
	 */
	public String arrayToJson(Object object) {
		JSONArray jsonArray = JSONArray.fromObject(object);
		return jsonArray.toString();
	}

	/**
	 * 将Map转换成JSON
	 * 
	 * @param object
	 * @return
	 */
	public String mapToJson(Object object) {
		JSONObject jsonObject = JSONObject.fromObject(object);
		return jsonObject.toString();
	}

	/**
	 * 将JSON转换成Map
	 * 
	 * @param keyArray
	 *            为Map的key
	 * @param json
	 * @param valueClz
	 *            为Map中value的Class
	 * @return Map对象
	 */
	@SuppressWarnings("unchecked")
	public Map jsonToMap(Object[] keyArray, String json, Class valueClz) {
		JSONObject jsonObject = JSONObject.fromObject(json);
		Map classMap = new HashMap();

		for (int i = 0; i < keyArray.length; i++) {
			classMap.put(keyArray[i], valueClz);
		}
		return (Map) JSONObject.toBean(jsonObject, Map.class, classMap);
	}

	/**
	 * 将POJO转换成JSON
	 * 
	 * @param object
	 *            需要转换的对象
	 * @return
	 */
	public String beanToJson(Object bean) {
		JSONObject jsonObject = JSONObject.fromObject(bean);
		return jsonObject.toString();
	}

	/**
	 * 将JSON转换成POJO
	 * 
	 * @param json
	 * @param beanClz
	 *            为POJO的Class
	 * @return
	 */
	public Object jsonToObject(String json, Class beanClz) {
		return JSONObject.toBean(JSONObject.fromObject(json), beanClz);
	}

	/**
	 * 将JSON转换成String
	 * 
	 * @param json
	 * @param key
	 * @return
	 */
	public String jsonToString(String json, String key) {
		JSONObject jsonObject = JSONObject.fromObject(json);
		return jsonObject.get(key).toString();
	}
	 /**
  * JAVA数组对象转换成JSON字符串
  * 
  * @param list JAVA数组对象
  * @return JSON字符串
  * @throws MapperException
  */
 public static String obj2Json(List<Class<?>> list) throws MapperException {
  if (list == null || list.size() == 0) {
   return "{}";
  }
  StringBuilder jsonString = new StringBuilder();
  for (int i = 0; i < list.size(); i++) {
   if (i != 0) {
    jsonString.append(",");
   }
   Class<?> cla = list.get(i);
   jsonString.append(obj2Json(cla, false));
  }
  return jsonString.toString();
 }
 /**
  * JAVA集合对象转换成JSON字符串
  * 
  * @param map JAVA集合对象
  * @return JSON字符串
  * @throws MapperException
  */
 public static String obj2Json(Map<String, Class<?>> map) throws MapperException {
  if (map == null || map.size() == 0) {
   return "{}";
  }
  StringBuilder jsonString = new StringBuilder();
  Set<String> keySet = map.keySet();
  boolean isFirst = true;
  for (String key : keySet) {
   if (isFirst) {
    isFirst = false;
   } else {
    jsonString.append(",");
   }
   Class<?> cla = map.get(key);
   jsonString.append(obj2Json(cla, false));
  }
  return jsonString.toString();
 }
 
 /**
  * JAVA集合对象转换成JSON字符串
  * 
  * @param map JAVA集合对象
  * @return JSON字符串
  * @throws MapperException
  */
 @SuppressWarnings("unchecked")
 public static String map2Json(Map<?,?> map) throws MapperException {
  MapBean mapBean = new MapBean((Map<String, Object>)map);
  return obj2Json(mapBean);
 }
 /**
  * JAVA数组对象转换成JSON字符串
  * 
  * @param list JAVA数组对象
  * @return JSON字符串
  * @throws MapperException
  */
 public static String list2Json(List<?> list) throws MapperException {
  ListBean listBean = new ListBean(list);
  return obj2Json(listBean);
 }
 /**
  * 重载objectToJsonStr方法
  * 
  * @param obj 需要转换的JAVA对象
  * @param format 是否格式化
  * @return JSON字符串
  * @throws MapperException
  */
 public static String obj2Json(Object obj, boolean format) throws MapperException {
  JSONValue jsonValue = JSONMapper.toJSON(obj);
  String jsonStr = jsonValue.render(format);
  return jsonStr;
 }
 /**
  * JSON字符串转换成JAVA对象
  * 
  * @param jsonStr JSON字符串
  * @param cla JAVA对象
  * @return 转换后的对象
  */
 public static Object json2Obj(String jsonStr, Class<?> cla) throws Exception {
  Object obj = null;
  try {
   JSONParser parser = new JSONParser(new StringReader(jsonStr));
   JSONValue jsonValue = parser.nextValue();
   if (jsonValue instanceof com.sdicons.json.model.JSONArray) {
    List<Object> list = new ArrayList<Object>();
    JSONArray jsonArray = (JSONArray) jsonValue;
    for (int i = 0; i < jsonArray.size(); i++) {
     JSONValue jsonObj = jsonArray.get(i);
     Object javaObj = JSONMapper.toJava(jsonObj, cla);
     list.add(javaObj);
    }
    obj = list;
   } else if (jsonValue instanceof com.sdicons.json.model.JSONObject) {
    obj = JSONMapper.toJava(jsonValue, cla);
   } else {
    obj = jsonValue;
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return obj;
 }
	

}

  

分享到:
评论

相关推荐

    json入门基础教程

    ### JSON入门基础教程:理解与应用 #### 一、JSON概览 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON是基于JavaScript的一个子集,它使用了...

    json的基本知识

    通过学习JSON的基本知识,包括其结构、数据类型以及与JavaScript对象的转换,你可以更好地理解和处理网络通信中的数据,从而在Web开发中更加得心应手。无论是在后端服务器与前端页面间传递数据,还是在不同的应用...

    json 学习笔记 相关知识点

    ### JSON学习笔记:深入理解与应用 ...通过本篇学习笔记,我们深入了解了JSON的基本概念、序列化与反序列化的方法,以及在Web服务中使用JSON的实际案例。这将有助于开发者更好地掌握JSON技术,提升Web开发能力。

    Json 入门学习资料

    以下是一些关于JSON的基础知识和入门要点: 1. **JSON的结构**: JSON主要由两种基本结构组成: - 对象(Object):以花括号 `{}` 包裹,内部由一系列键值对(Key-Value)构成,键和值之间用冒号 `:` 分隔,键值...

    json轻松入门教程

    在本教程中,我们将深入探讨JSON的基础知识,帮助你轻松入门。 **一、JSON的基本结构** JSON主要由对象(Object)和数组(Array)两种基本结构构成,它们都是键值对的集合。 1. **对象**: 对象在JSON中用花括号 `...

    json初学入门教程

    ### JSON初学入门教程知识点详解 #### 一、JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于Web应用程序中进行数据传输。它以文本形式存储,具有简单易读的特点,并且能被...

    JSON入门与实战详解

    在本教程中,我们将深入探讨JSON的基础知识、语法以及在实际开发中的应用。 ### JSON基础 1. **数据结构**:JSON支持两种基本的数据结构——对象和数组。对象是键值对的集合,用花括号 `{}` 包裹;数组是有序元素...

    json知识总结

    JSON的基本语法简单且易于理解。数据在JSON中以键值对的形式呈现,通过大括号{}来创建一个对象。例如: ```json {"name": "shure", "age": 22} ``` 一个JSON对象可以包含多个键值对,键(属性名)必须是字符串...

    json入门博客资料

    在本压缩包中的“json入门博客资料”中,你可以找到一系列关于JSON的基础知识和在VS(Visual Studio)环境下如何进行开发的教程。 JSON是一种独立的语言无关的数据格式,但它与JavaScript语法高度相似。一个JSON...

    JSON解析 创建JSON

    总结,JSON作为一种轻量级的数据格式,其创建和解析是Web开发中的基础技能。理解JSON的基本结构,学会在不同语言中创建和解析JSON,以及了解相关扩展如JSON Schema、JSONP和JSON-LD,都将对提升你的Web开发能力...

    古诗内容提取json格式转jsonl

    总的来说,了解JSON和JSONL格式,以及它们之间的转换方法,是现代数据处理和分析工作中的基本技能。无论是开发Web应用,还是进行深度学习和自然语言处理研究,熟悉这些格式都能极大地提升工作效率。通过这次转换,...

    PB解析json,解析JSON案例,解析jsondemo

    “PB解析json,可解析树立菜单”说明PB不仅能够解析基本的JSON对象,还能够处理嵌套结构,例如包含层次关系的数据,这在构建如树形菜单等复杂用户界面时非常有用。“也完美可解析后将结果存到数据源”则强调了PB在...

    jsonview,转换json格式

    1. **JSON基本结构**:JSON数据由键值对组成,键用引号括起来,后跟冒号,值与键之间用逗号分隔,数据由大括号{}包围。数组则由方括号[]包围。 2. **JSONView的使用**:安装JSONView扩展后,当浏览器加载到JSON格式...

    json所需要的夹包,json解析用,json,json夹包和教程,解析json所需要的夹包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被...如果你是初学者,建议从官方文档或在线教程开始,逐步掌握JSON解析的核心知识和技巧。同时,不断实践和应用,以提升对JSON和相关库的掌握程度。

    JSON+AJAX,JSON,AJAX,JAVA ,教程,手册,入门,文档,json.pdf

    这些文档通常会涵盖基础概念、语法特性、使用示例、常见问题及解决方案等内容,帮助初学者快速入门并逐步提升技能。例如,`json.pdf`可能包含了JSON的结构介绍、数据类型、编码规则、解析和生成的方法,以及在AJAX和...

    java服务端生成json(json服务端)

    总结来说,Java服务端生成JSON涉及的主要知识点包括: 1. JSON数据格式的理解及其在数据交换中的作用。 2. 使用Gson或FastJson库进行JSON序列化和反序列化。 3. 结合HTTP服务器框架处理JSON响应。 4. 调试和测试JSON...

    json.zip_JSON_c/c++ json_c/c++ json 解析_json解析 c++_解析json

    以下是一些关于C++中JSON解析的重要知识点: 1. **JSON格式**:JSON格式基于JavaScript语法,但它是独立于语言的。基本结构包括对象(键值对的集合,用花括号{}包围)和数组(有序元素列表,用方括号[]包围)。值...

    json-c-master_c语言项目_json-c-master_JSONC语言_json-c_

    2. **JSON数据结构**:理解JSON的基本数据类型,如对象(键值对)、数组、字符串、数字、布尔值和null。你需要知道如何表示和解析这些结构。 3. **json-c库**:学习`json-c`库提供的API,包括解析JSON字符串到C数据...

    json的应用手册

    1. JSON的基础语法:了解JSON对象、数组、字符串、数字、布尔值、null等基本数据结构。 2. 在JavaScript中使用JSON:解释如何在JavaScript中序列化(将JavaScript对象转换成JSON字符串)和反序列化(将JSON字符串...

    最好用的Json工具.exe

    理解这些基本结构是解析和创建JSON的关键。 3. JSON API交互:Android应用通常通过HTTP请求与服务器进行通信,如使用`HttpURLConnection`、OkHttp或Retrofit等库。接收到的服务器响应通常是JSON格式,需要解析后...

Global site tag (gtag.js) - Google Analytics