`
jilong-liang
  • 浏览: 472205 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

Map,HashMap组装Json数据,jackson简单的入门和解析Json例子

    博客分类:
  • Json
阅读更多
package com.ljl.org.domain;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.ObjectMapper;

import com.google.gson.Gson;
import com.ljl.org.entity.Info;
import com.ljl.org.entity.User;

/**
 *@Author:liangjilong
 *@Date:2013-8-13
 *@Email:jilongliang@sina.com
 *@Version:Version1.0
 *@CopyRight:liangjilong
 *@Description:http://wiki.fasterxml.com/JacksonInFiveMinutes#Full_Data_Binding_.28POJO.29_Example
 *
 *=====================================
	*	=====================================
	*	☆★★建议解析json的有:
	*	1)GSON (gson-2.2.4.jar)
	*	2)json-lib-2.2.3-jdk15.jar--
		
	*	☆不建议使用的:
	*	JackSON比较扯淡(毛线)
		
	*	需要的jar
	*	    http://download.csdn.net/detail/jilongliang/5789041
	*		jackson-all-1.6.2.jar
	*		jackson-core-asl-1.6.2.jar
	*		jackson-mapper-asl-1.6.2.jar
	*		jakarta-oro.jar
	*	=====================================
	*	=====================================
   */
public class Jackson1 {
   private static ObjectMapper mapper = new ObjectMapper();  
   public static void main(String[] args) throws Exception {
	   jackSon1();
	   jackSon2();
  }
   /**
    * 简单的JackSon测试,对比一下,不知道谁抄谁的!Gson和Json-lib-2.2.3-jdk15也有很多相似的
    * 使用者两个技术的人都知道、、、、 
    * ===================================================
    * Gson创建一个JsonParser
	* JsonParser parser = new JsonParser();
	* JsonElement jsonEl = parser.parse(json);
	* ===================================================
	* JackSon 创建一个JsonParser
	*  JsonFactory f = new JsonFactory();//实例JSON工程对象
	*  JsonParser jp = f.createJsonParser(json);
	* ===================================================
    */
   public static void  jackSon1()throws Exception{
	   String json = "[{\"userName\": \"liangjilong\",\"address\":\"广东阳春\"},{\"userName\": \"liangjilong\",\"address\": \"广东阳春\"}]";
	   JsonFactory f = new JsonFactory();//实例JSON工程对象
	   JsonParser jp = f.createJsonParser(json);
	   jp.nextToken();//下一个JsonToken
	   while (jp.nextToken() == JsonToken.START_OBJECT) {
	       User u = mapper.readValue(jp, User.class);//对象化
	       System.out.println(u.getUserName()+"\t"+u.getAddress());
	    }
   }
   /**
    * @throws Exception
    */
   public static void  jackSon2()throws Exception{
	   /**
		  * 组装address对象的数据
		  */
		 Map<String, String> address = new HashMap <String, String>(); 
		 address.put("province", "广东省");
		 address.put("city", "广州市");
		 address.put("district", "天河区");
		 address.put("street", "棠东"); 
		 /**
		  * 组装users对象的数据
		  */
		 Map<String, String> users = new HashMap <String, String>(); 
		 users.put("userName", "liangjilong");
		 users.put("age", "25");
		 users.put("tel", "12396878");
		 users.put("email", "jilongliang@sina.com"); 
		 
		 Map<Object, Object> listsObj = new HashMap <Object, Object>(); 
		 listsObj.put("address",address);//address节点
		 listsObj.put("user",users);//users节点
		 
		 Object obj=listsObj;//转换成对象
		 
		 Map<Object, Object> info = new HashMap <Object, Object>(); 
		 info.put("info", obj);//json的根节点
		 //System.out.println(info);
		 /**
		  * 写
		  */
		 String path="D:/test/json1.txt";
		 mapper.writeValue(new File(path), info);//把数据写入本地文件,JackSon会以json格式写入进去的
		 /**
		  * 读
		  */
		 String jsons=info.toString().replace("=", ":");
		 //用Gson处理/初次使用JackSon找不到处理json数据,由于之前使用Gson就熟悉,就借用一下处理,感觉有点毛线。O(∩_∩)O哈哈~无语.
		 //String newJson=new Gson().toJson(info);
                 String newJson=mapper.writeValueAsString(info);
		 int start=newJson.indexOf(":")+1;
		 int end=newJson.lastIndexOf("}");
		 jsons="["+newJson.substring(start, end)+"]";//组装JackSon支持的格式.
		 JsonFactory f = new JsonFactory();//实例JSON工程对象
	     JsonParser jp = f.createJsonParser(jsons);
	     jp.nextToken();//下一个JsonToken
	     while (jp.nextToken() == JsonToken.START_OBJECT) {
	       Info inf = mapper.readValue(jp, Info.class);//对象化
	       System.out.println(inf.getAddress().getDistrict());//获取Address对象的值
	       System.out.println(inf.getUser().getUserName());//获取User的值
	    }  
   }
}

 

package com.ljl.org.entity;
/**
 *@Author:liangjilong
 *@Date:2013-8-13
 *@Email:jilongliang@sina.com
 *@Version:Version1.0
 *@CopyRight:liangjilong
 *@Description:
 */
public class Info {
	private Address address;
	private User user;
	public Address getAddress() {
		return address;
	}
	public void setAddress(Address address) {
		this.address = address;
	}
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
}

 

package com.ljl.org.entity;
/**
 *@Author:liangjilong
 *@Date:2013-8-13
 *@Email:jilongliang@sina.com
 *@Version:Version1.0
 *@CopyRight:liangjilong
 *@Description:
 */
public class Address {
	private String province;
	private String city;
	private String district;
	private String street;
	public String getProvince() {
		return province;
	}
	public void setProvince(String province) {
		this.province = province;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getDistrict() {
		return district;
	}
	public void setDistrict(String district) {
		this.district = district;
	}
	public String getStreet() {
		return street;
	}
	public void setStreet(String street) {
		this.street = street;
	}
}

 

package com.ljl.org.entity;
/**
 *@Author:liangjilong
 *@Date:2013-8-13
 *@Email:jilongliang@sina.com
 *@Version:Version1.0
 *@CopyRight:liangjilong
 *@Description:
 */
public class User {
	private int Id;  
	private String userName;
	private String tel;
	private String address;
	private String age;
	private String email;
	public int getId() {
		return Id;
	}
	public void setId(int id) {
		Id = id;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}

 

0
3
分享到:
评论
1 楼 strivezsh 2013-08-14  
还是比较喜欢 把map 和 list封装成jsonobject jsonarray对象的 这种json jar
不太喜欢 json字符串转换成map list 这样泛型一大堆 有时候还要强转

相关推荐

    Map转JSON的jar包

    Map转JSON的所有jar包,含使用说明

    android客户端从服务器端获取json数据并解析的实现代码

    首先客户端从服务器端获取json数据 1、利用HttpUrlConnection 代码如下:/** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exception */ public static String readParse(String urlPath) ...

    sturts框架下返回json数据 list map 对象

    sturts框架下返回json数据,可以是 list对象 map对象 或者java类对象等,这是一个完整的实例,里面有jar包。

    JSON入门Java篇-4-用HashMap来构建JSON.rar

    JSON入门Java篇-4-用HashMap来构建JSON.rar

    APP客户端访问SSH框架服务器返回json数据实例(服务端和客户端源码)

    包含一个SSH框架实例和一个获取该服务器返回json数据的android app实例。 使用方法, 1.SHH是SSH框架的java wab工程,里面定义了一个action,启动apach-tomcat服务器后可在浏览器输入“localhost:8080/SSH/userjson...

    Map与HashMap

    《java编程思想》,Map结合HashMap获取键相关联的值

    jdom 解析xml存入hashmap的例子

    jdom 解析xml存入hashmap的例子 ~~~

    java解析json

    java解析json字符串。 commons-beanutils-1.9.0 commons-collections-3.2.1 commons-lang-2.6 commons-logging-1.1.3 ezmorph-1.0.6 json-lib-2.4-jdk15 demo: package com; import java.util.ArrayList;...

    json 转为map 适合java

    json 转为map Java

    Java JSON解析依赖JAR(JSON LIB)

    用于解析Java JSON,里面的包有不少是根据链接收集的,但发现仍然不能完整执行。 经检查还是缺少commons-collections-3.2.1.jar这个包(过高的版本,如4.5不支持Json Lib)。 包名录如下: json-lib-2.2-jdk15.jar ...

    json.jar包

    Map map = newHashMap(); map.put("name","json"); map.put("bool",Boolean.TRUE); map.put("int", newInteger(1)); map.put("arr", new String[] {"a", "b" }); map.put("func", "function(i){return this.arr...

    JSON工具类包含对象转hashmap

    包含各种对象转换成json对象,还包含把对象中的属性转成hashmap 并且可以过滤为空的或者为null的对象

    java 处理 json格式及例子

    处理json格式数据。。 String s0 = "{cart_1325036696007:{goods_id:"100015",goods_name:"澳大利亚进口绵羊",goods_imgsrc:"http://192.168.1.180:7001//gwadmin/uploadimg/spxc/2011/12/9/100016_00948703_68.jpg"...

    list 转化成hashmap例子

    list 转化成hashmap例子 java程序

    Java 开发所需json的jar包,转json格式

    Map,Object&gt; map=HashMap,Object&gt;(); map.put("sex","man"); toJson(map); /** * 将得到的数据以json格式进行输出,如果对象不存在则输出空字符串 * * @param obj * 要转换成json的对象 */ protected String...

    JSON-lib框架,转换JSON、XML不再困难

    Map, Object&gt; map = new HashMap, Object&gt;(); map.put("A", bean); bean.setName("jack"); map.put("B", bean); map.put("name", "json"); map.put("bool", Boolean.TRUE); map.put("int", new Integer(1));...

    json的解析

    该小项目完整全面整理了java解析json各中写法,以及json的生成、遍历。 该项目收集整理json所需的jar包,使用文档。 /** * json的生成、遍历 */ import java.util.*; import net.sf.json.JSONArray; import ...

    xml2jsonjar包

    import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSON; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.xml.XMLSerializer;

    HashMap的一个数据结构

    HashMap的一个数据结构 锁升级:锁升级过程 resize的过程在开发中 怎么保证容器它线程安全后就是数据插入过程使用的头插法 但是头插法会造成一些问题等等等等的那个等等的那个等等的那个等等的那个等等的那个等等的...

    比较分析Vector、ArrayList和hashtable hashmap数据结构

    比较分析Vector、ArrayList和hashtable hashmap数据结构

Global site tag (gtag.js) - Google Analytics