json学习(java篇)

标签: json 学习 java | 发表时间:2012-02-06 09:54 | 作者:slider
出处:http://www.cnblogs.com/

前一个小项目中用到了json:服务器返回的数据有xml或者json格式的数据,由于json简洁、轻量、高性能等优点,我们当时就采用的是json格式的数据。上个月没有心情学习啊,就索性多玩会儿,不过今年得有个目标,至少博客得多写写,质量上也希望比前几个月有所提升,那就开始吧。

先从json基础知识开始学起。官网不用多说了吧:json.org。

  json是一种轻量型的数据交互格式。它很容易被人们阅读和书写,也易于机器解析和生成。它给予javasrcipt,是一种文本格式的、完全独立的语言。

  json中有两种数据结构:

  • 名称/值对的集合(你也可以简单理解为Map)。在不同的语言,这是作为一个对象,记录,结构,字典,哈希表,键列表或关联数组实现。
  • 值的有序列表(通常是Array)。在大多数语言中,实现由一个数组,向量,列表,或序列。

  这些都是通用的数据结构。几乎所有的现代编程语言都支持这种或那种形式。也正是如此,使json格式的数据可以在不同的编程语言中交互。

  在JSON中,他们采取这些形式:

  一个json对象是一个无序的名称/值对。一个对象以 ‘ { ’ 开始,以 ‘ } ’ 结束。每个名称后跟':'(冒号),名称/值对的分隔符为‘,’(逗号)。

  一个json对象如下:

有上图可以看出:名称/值对中的名称必须是String型的数据结构,那么value又有什么类型的数据结构呢?

这里得说说array数据类型了,也就是上面的所说的“值的有序列表”。这个数组以‘ [ ’(左括号)开始,以 ’ ] ‘结束,以','(逗号)作为分隔符号。

  

解释下value里面的string,number,null这个三个元素。

  string是由0个或多个Unicode字符组成,由双引号包裹,非常想c或java中的字符串。number在c或java中都有这样的数据类型就不多说了。但是null又是什么呢?null是json里的一个特殊的value,它可以在你需要的时候转化成任何数据类型。

  废话不多说,举例吧:

  

//Merge two JSON objects   
JSONObject obj1 = new JSONObject();
obj1.put("name","foo");
obj1.put("num",new Integer(100));
obj1.put("balance",new Double(1000.21));

JSONObject obj2 = new JSONObject();
obj2.put("is_vip",new Boolean(true));
obj2.put("nickname",null);
obj2.putAll(obj1);
System.out.print(obj2);

 

String json = "{"   
+ " \"query\": \"Pizza\", "
+ " \"locations\": [ 94043, 90210 ] "
+ "}";

JSONObject object = (JSONObject) new JSONTokener(json).nextValue();
String query = object.getString("query");
JSONArray locations = object.getJSONArray("locations");




本文链接

相关 [json 学习 java] 推荐:

json学习(java篇)

- - 博客园_首页
前一个小项目中用到了json:服务器返回的数据有xml或者json格式的数据,由于json简洁、轻量、高性能等优点,我们当时就采用的是json格式的数据. 上个月没有心情学习啊,就索性多玩会儿,不过今年得有个目标,至少博客得多写写,质量上也希望比前几个月有所提升,那就开始吧. 先从json基础知识开始学起.

[Json]json-lib简单处理java对象变为json对象

- - CSDN博客编程语言推荐文章
由于js对json的原生支持,所以现在很多项目的数据传输都喜欢用json. 怎么样把数据从java对象转化为json对象,有怎么把前台的json对象转化成java对象去处理. json-lib是sourceforge的一个开源项目,常用来解决java json数据转换的问题. 下载地址是 http://sourceforge.net/projects/json-lib/.

GitHub - json-path/JsonPath: Java JsonPath implementation json 类xpath 解析工具

- -
JsonPath expressions always refer to a JSON structure in the same way as XPath expression are used in combination with an XML document. Functions can be invoked at the tail end of a path - the input to a function is the output of the path expression.

JSON与JAVA的数据转换

- - BlogJava_首页
本文介绍如何使用JSON-lib这个Java类包实现Java的数据转换. 通过此类包可以把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean. JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean.

判断字符串是否是有效json对象(java + gson )

- - 改善
已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

使用Gson实现Json和Java对象的转换

- - ITeye博客
Gson是Google的开源项目(项目主页: https://code.google.com/p/google-gson/),. Gson在线帮助文档: http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html.

Java下利用Jackson进行JSON解析和序列化

- - 企业架构 - ITeye博客
Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换,下面给出一些Jackson的JSON操作方法. 首先去官网下载Jackson工具包,下载地址http://wiki.fasterxml.com/JacksonDownload.

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

- - Java - 编程语言 - ITeye博客
Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用. 先修改之前的helloworld.jsp,增加客户端json格式的数据输入. 根据前面的分析,在spring mvc中解析输入为json格式的数据有两种方式 1:使用@RequestBody来设置输入.

Java JSON(一)Jackson区别于竞争对手的7个杀手锏--转

- - 开源软件 - ITeye博客
转自:http://www.blogjava.net/wangxinsh55/archive/2012/09/06/387179.html. Jackson JSON 处理器 为一行之有效的Java JSON处理器,诸如它具有如下特点:.     简但且方便的JSON解析,以及与Java对象的相互转换.

JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)

- - CSDN博客推荐文章
java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中;然后在需要的时候,可以根据字节流中的信息来重构一个相同的对象. 序列化机制在java中有着广泛的应用,EJB、RMI等技术都是以此为基础的.