最近写一个搜索方面的代码,需要用JS异步请求以JSON格式与服务器传输数据,于是开始了JSON和Rest的学习。
intro
JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。尽管JSON是在Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯---百科
JSON用于描述数据结构,有两种基本形式存在
名称/值对(collection):名称和值之间使用“:”隔开,每个名称/值对之间使用“,”分割,并且使用“{”“}”括起来;一般的形式是:
{name:value}
这样的数据描述在不同的语言中会被解释成不同的形式,可能是对象,结构体,哈希表等。
值的有序列表(Array):一个或者多个值用“,”分割后,使用“[”,“]”括起来就形成了这样的列表,形如:
[collection, collection]
在很多语言中它被解释为数组。
understanding
个人认为JSON是继XML后更为简洁、更具有可读性的数据格式。
JSON的规格非常简单,只用一个页面、几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。
1) 并列的数据之间用逗号(“,”)分隔。
2) 映射用冒号(“:”)表示。
3) 并列数据的集合(数组)用方括号("[]")表示。
4) 映射的集合(对象)用大括号(“{}”)表示。
practice
下面是JSON与JAVA中一些对象的转换例子
需要用到的JAR包
commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
json-lib-2.2.3-jdk15.jar(目前最高版本)
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar
commons-beanutils-core-1.7.0.jar
所有包见附件
List list = new ArrayList();
list.add("djl");
list.add(999);
JSONArray jArray = JSONArray.fromObject(list);
jArray.add("newElement");
System.out.println("jArray===="+jArray);
Map map = new HashMap();
map.put("name", "leign");
map.put("year", 2009);
JSONObject jsonObject = JSONObject.fromObject(map);
jsonObject.put("key", "value");
System.out.println("jsonObject===="+jsonObject);
String jsonStr = "['leign','is','a','boy']";
JSONArray jArrayFromStr = JSONArray.fromObject(jsonStr);
System.out.println("jArrayFromStr===="+jArrayFromStr);
String jsonObjectStr = "{name=\"leign\",year:2009,word:\"hello\"}";
JSONObject jsonObjFromStr = JSONObject.fromObject(jsonObjectStr);
Object bean = JSONObject.toBean(jsonObjFromStr);
System.out.println("bean===="+bean);
System.out.println("name====="+jsonObjFromStr.get("name"));
JSON与XML的转换
可利用net.sf.json.xml.XMLSerializer所带的write()、read()等解决
public static String JsonToXml(String jsonStr)
{
String xmlStr = null;
if(jsonStr!=null){
JSON json = JSONObject.fromObject(jsonStr);
xmlStr = XMLSerializer.write(json);
}
return xmlStr;
}
public static String XmlToJson(String xml)
{
JSON json = null;
if(xml!=null){
json = XMLSerializer.read(xml);
}
return json.toString();
}
当然也可以自己手动去解析转换,有兴趣可以自己试试.
分享到:
相关推荐
### JSON学习笔记:深入了解JSON与Spring框架中的初始化机制 #### JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁性和易读性而著称,不仅适用于人眼阅读,也便于机器解析和...
在本文档《json 学习笔记_***.pdf》中,主要介绍了在Java开发中,如何使用三个常用的JSON处理工具:struts json,json_lib,jackson-mapper。同时,也提到了在使用这些工具时可能遇到的一些常见错误及其处理方法。 ...
### JSON学习笔记:深入理解与应用 #### 一、JSON简介与重要性 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于ECMAScript的一个子集,采用...
### WCF返回JSON学习笔记 #### 一、WCF与JSON简介 - **WCF (Windows Communication Foundation)**:是微软开发的一个框架,用于构建服务导向的应用程序。它提供了多种通信协议的支持,包括HTTP、TCP等,并且支持...
### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...
在这个“json学习笔记、jackson的jar包”中,我们可以深入探讨JSON和Jackson的相关知识点。 1. JSON基本概念: - JSON是一种文本格式,易于人阅读和编写,同时也易于机器解析和生成。 - JSON数据结构主要由对象...
### Ajax & Json 学习笔记 #### 一、Ajax 简介 ##### 1.1 Ajax 概念 **Ajax**(Asynchronous Javascript + XML) 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量的数据交换,Ajax 可以使网页实现...
这篇学习笔记将深入探讨这两种数据结构的特性和用法。 首先,我们来了解JavaScript中的数组对象。数组是一种有序的数据集合,可以存储任意类型的数据,包括数字、字符串、对象等。在JavaScript中,数组是对象的一种...
### JSON学习笔记 #### JSON与XML的对比 随着互联网技术的发展,数据交换成为了现代软件开发中的重要环节之一。为了满足不同场景下的需求,多种数据交换格式应运而生,其中最为人熟知的就是XML(可扩展标记语言)...
这个学习笔记主要围绕`json-lib`的使用方法和关键特性进行阐述。 首先,`json-lib`支持多种Java对象到JSON的转换,包括基本类型、数组、集合、Map以及自定义的Java类。例如,你可以通过以下方式将一个HashMap转换为...
本篇学习笔记将深入探讨Jackson框架的核心概念和使用方法,帮助你轻松应对JSON与Java对象之间的转换。 1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能...
JS基础学习笔记-JSON
3. JSON对象与JSON数组的创建:学习笔记可能介绍如何使用JSON-lib创建JSON对象和数组。例如,你可以通过`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类来实现。 4. Java对象转换为JSON:JSON-lib提供了`...
《xStream完美转换XML、JSON》学习笔记 在IT领域,数据交换是常见的需求,而XML和JSON作为两种广泛使用的数据格式,它们之间的转换尤为重要。xStream是一个强大的Java库,它能够轻松地将Java对象序列化为XML或反...
根据提供的文件内容,以下是对Go语言学习笔记的详细知识点阐述。 Go语言是Google开发的一种静态类型、编译型、并发型,并具有垃圾回收功能的编程语言。它由Robert Griesemer、Rob Pike和Ken Thompson于2007年9月...
在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输。 1. **JSON格式简介** ...
Go语言学习笔记.pdf 共174页 Go语言学习笔记.pdf 共174页是一本关于Go语言的详细学习笔记,涵盖了Go语言的基础知识、函数、数组、Maps、Structs、接口、并发、程序结构、标准库等方面的内容。本笔记共分为三大部分...