Json 基础研究

作者:刘庆

希望对JSON 的学习者有帮助

 

http://www.apache.org/

 

commons-collections-3.1.jar

commons-lang-2.5.jar

commons-logging-1.1.1.jar

 

json-lib-2.4-jdk15.jar

http://json-lib.sourceforge.net/

 

commons-beanutils.jar 下载

http://commons.apache.org/beanutils/download_beanutils.cgi

 

ezmorph.jar 下载

http://sourceforge.net/projects/ezmorph/files/ezmorph/ezmorph-1.0.6/ezmorph-1.0.6.jar/download

 

 

 

1. Json 数据原理

 

 

 

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

 

 

 JSON建构于两种结构:

  1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

  2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

  这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

 

2.精据对象查式

java 对象 name="liuqing"

json 数据 {"name":"liuqing"}

java 对象

 

 

package com.hello;

public class CoreInfo {
	
	private int id;
	
	private double core;
	
	private String name;

	/**
     * 
	 *	setter ...getter
     */
	
}

JSON 对象数据 

 

{"core":95.5,"id":234,"name":"coreName"}

java 数组对象

 [{JSONObject},{JSONObject},{JSONObject}]

 

 

package com.hello;

import java.util.ArrayList;
import java.util.List;

public class User {
	
	private Integer id;
	
	private String name;
	
	private String password;
	
	private String sex;
	
	private List<English> englishes = new ArrayList<English>();
	
	private CoreInfo coreInfo;
	
    /**
     * 
	 *	setter ...getter
     */
}

  package com.hello;

import java.math.BigDecimal;

public class English {
	
	private Integer id;
	
	private String name;
	
	private String sex;
	
	private float doe;
	
	private BigDecimal beg;
	
	private double fs;

	/**
     * 
	 *	setter ...getter
     */
	
}
 

 

 

JSON 数组对象

 

 

package com.hello;

import java.math.BigDecimal;

import net.sf.json.JSONObject;

public class PanelInfo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		User u = new User();
		u.setId(23);
		u.setName("liuqing");
		u.setPassword("122432432");
		u.setSex("male");
		CoreInfo coreInfo = new CoreInfo();
		coreInfo.setId(234);
		coreInfo.setName("coreName");
		coreInfo.setCore(95.5);
		u.setCoreInfo(coreInfo);
		English en = new English();
		en.setId(12);
		en.setName("eeeeee");
		en.setSex("male");
		en.setBeg(new BigDecimal(26382.09));
		en.setDoe(243626.90f);
		en.setFs(3627.98);
		English en2 = new English();
		en2.setId(124);
		en2.setName("eeeeee");
		en2.setSex("male");
		en2.setBeg(new BigDecimal(26382.09));
		en2.setDoe(243626.90f);
		en2.setFs(3627.98);
		English en3 = new English();
		en3.setId(122);
		en3.setName("eeeeee");
		en3.setSex("male");
		en3.setBeg(new BigDecimal(26382.09));
		en3.setDoe(243626.90f);
		en3.setFs(3627.98);
		u.getEnglishes().add(en);
		u.getEnglishes().add(en2);
		u.getEnglishes().add(en3);
//		JSONObject.fromObject(object) 将Java 对象 to JSONObject对象
//      JSONObject.toString() 生成JSON String 对象
		System.out.println(JSONObject.fromObject(u).toString());

	}

}
 

JSON数据

 

 

{	
	"coreInfo":{"core":95.5,"id":234,"name":"coreName"}
	,"englishes":[
			{"beg":26382.09000000000014551915228366851806640625
			,"doe":243626.9,"fs":3627.98,"id":12,"name":"eeeeee","sex":"male"}
			,{"beg":26382.09000000000014551915228366851806640625
			,"doe":243626.9,"fs":3627.98,"id":124,"name":"eeeeee","sex":"male"}
			,{"beg":26382.09000000000014551915228366851806640625
			,"doe":243626.9,"fs":3627.98,"id":122,"name":"eeeeee","sex":"male"}
		     ]
	,"id":23
	,"name":"liuqing"
	,"password":"122432432"
	,"sex":"male"
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值