`
leign
  • 浏览: 169024 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSON学习笔记

阅读更多
最近写一个搜索方面的代码,需要用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();
}

当然也可以自己手动去解析转换,有兴趣可以自己试试.
0
0
分享到:
评论

相关推荐

    Json学习笔记

    ### JSON学习笔记:深入了解JSON与Spring框架中的初始化机制 #### JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁性和易读性而著称,不仅适用于人眼阅读,也便于机器解析和...

    json 学习笔记_20140116.pdf

    在本文档《json 学习笔记_***.pdf》中,主要介绍了在Java开发中,如何使用三个常用的JSON处理工具:struts json,json_lib,jackson-mapper。同时,也提到了在使用这些工具时可能遇到的一些常见错误及其处理方法。 ...

    json 学习笔记 相关知识点

    ### JSON学习笔记:深入理解与应用 #### 一、JSON简介与重要性 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于ECMAScript的一个子集,采用...

    WCF返回JSON学习笔记

    ### WCF返回JSON学习笔记 #### 一、WCF与JSON简介 - **WCF (Windows Communication Foundation)**:是微软开发的一个框架,用于构建服务导向的应用程序。它提供了多种通信协议的支持,包括HTTP、TCP等,并且支持...

    JavaScript数组对象JSON学习笔记

    ### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...

    json学习笔记、jackson的jar包

    在这个“json学习笔记、jackson的jar包”中,我们可以深入探讨JSON和Jackson的相关知识点。 1. JSON基本概念: - JSON是一种文本格式,易于人阅读和编写,同时也易于机器解析和生成。 - JSON数据结构主要由对象...

    Ajax&Json学习笔记

    ### Ajax & Json 学习笔记 #### 一、Ajax 简介 ##### 1.1 Ajax 概念 **Ajax**(Asynchronous Javascript + XML) 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量的数据交换,Ajax 可以使网页实现...

    javascript中的数组对象以及json学习笔记

    这篇学习笔记将深入探讨这两种数据结构的特性和用法。 首先,我们来了解JavaScript中的数组对象。数组是一种有序的数据集合,可以存储任意类型的数据,包括数字、字符串、对象等。在JavaScript中,数组是对象的一种...

    JSON学习笔记第1/2页

    ### JSON学习笔记 #### JSON与XML的对比 随着互联网技术的发展,数据交换成为了现代软件开发中的重要环节之一。为了满足不同场景下的需求,多种数据交换格式应运而生,其中最为人熟知的就是XML(可扩展标记语言)...

    json-lib 学习笔记 分享下

    这个学习笔记主要围绕`json-lib`的使用方法和关键特性进行阐述。 首先,`json-lib`支持多种Java对象到JSON的转换,包括基本类型、数组、集合、Map以及自定义的Java类。例如,你可以通过以下方式将一个HashMap转换为...

    《Jackson 框架,轻易转换JSON》学习笔记

    本篇学习笔记将深入探讨Jackson框架的核心概念和使用方法,帮助你轻松应对JSON与Java对象之间的转换。 1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能...

    JS基础学习笔记-JSON

    JS基础学习笔记-JSON

    《JSON-lib框架,转换JSON、XML不再困难》学习笔记

    3. JSON对象与JSON数组的创建:学习笔记可能介绍如何使用JSON-lib创建JSON对象和数组。例如,你可以通过`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类来实现。 4. Java对象转换为JSON:JSON-lib提供了`...

    《xStream完美转换XML、JSON》学习笔记

    《xStream完美转换XML、JSON》学习笔记 在IT领域,数据交换是常见的需求,而XML和JSON作为两种广泛使用的数据格式,它们之间的转换尤为重要。xStream是一个强大的Java库,它能够轻松地将Java对象序列化为XML或反...

    Go 学习笔记 高清

    根据提供的文件内容,以下是对Go语言学习笔记的详细知识点阐述。 Go语言是Google开发的一种静态类型、编译型、并发型,并具有垃圾回收功能的编程语言。它由Robert Griesemer、Rob Pike和Ken Thompson于2007年9月...

    Spring MVC 学习笔记 九 json格式的输入和输出

    在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输。 1. **JSON格式简介** ...

    Go语言学习笔记.pdf 共174页

    Go语言学习笔记.pdf 共174页 Go语言学习笔记.pdf 共174页是一本关于Go语言的详细学习笔记,涵盖了Go语言的基础知识、函数、数组、Maps、Structs、接口、并发、程序结构、标准库等方面的内容。本笔记共分为三大部分...

Global site tag (gtag.js) - Google Analytics