首页 > 编程语言 > 详细

Transforming beans, maps, collections, java arrays and XML to JSON

时间:2014-03-29 12:28:44      阅读:551      评论:0      收藏:0      [点我收藏+]

  java将对象、数组、集合和map与json数据间的转换

几款常用JSON类库

Jackson:http://jackson.codehaus.org/  (性能最好)

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

Gson:http://code.google.com/p/google-gson/

一、使用JSON-lib

bubuko.com,布布扣
package com.zot.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/*
 * json-lib
 * Java library for transforming beans, maps, collections, java arrays and XML to JSON.
 */

public class TestToJson {
    public static void main(String[] args) {
        //ArraysOrListToJson();
        MapsToJson();
        //System.out.println("hello");
    }
    
    //当是对象的时候 
    public static void ObjectToJson() {
        Student student = new Student();
        student.setAge(18);
        student.setName("zhangsan");
        student.setSex("male");
        JSONObject jsonObject = JSONObject.fromObject(student);
        System.out.println(jsonObject);
    }

    //当是数组或list的时候 
    public static void ArraysOrListToJson() {
        Student[] stus = new Student[5];
        List<Student> stuList = new ArrayList<Student>();
        for (int i = 0; i < stus.length; i++) {
            stus[i] = new Student();
            stus[i].setAge(i * 10 + 8);
            stus[i].setName("zhang" + i);
            stus[i].setSex("male");
            // 添加到list,一会儿用
            stuList.add(stus[i]);
        }
        JSONArray jsonArray = JSONArray.fromObject(stus); 
        //JSONArray jsonArray = JSONArray.fromObject(stuList); 
        System.out.println(jsonArray);//和下面打印的结果相同 
    }
    
    //当既有对象又有数组的时候 
    public static void MapsToJson(){
        Map<String,Object> map = new HashMap<String,Object>(); 
        Teacher teacher = new Teacher(); 
        teacher.setAge(30); 
        teacher.setName("laoshi"); 
        teacher.setSex("male"); 
        
        Student[] stus = new Student[5];
        List<Student> stuList = new ArrayList<Student>();
        for (int i = 0; i < stus.length; i++) {
            stus[i] = new Student();
            stus[i].setAge(i * 10 + 8);
            stus[i].setName("zhang" + i);
            stus[i].setSex("male");
            // 添加到list,一会儿用
            stuList.add(stus[i]);
        }
        
    //    map.put("teacher", teacher); 
        map.put("student", stuList); 
        JSONObject jsonObjectFromMap = JSONObject.fromObject(map); 
        System.out.println(jsonObjectFromMap); 
    }

}
bubuko.com,布布扣

  需要引入json lib包:

maven pom.xml中加入:

(注意需要:json的jar的名称中多了一个跟JDK相关的名称,例如jdk15,它表示在相同版本下针对不同的环境或者jdk使用的jar,如何单纯用maven的坐标去访问这个jar是访问不到的。需要添加一个新的标签classifier,这会将这个元素名在加在最后来查找相应的jar

bubuko.com,布布扣
    <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
bubuko.com,布布扣

 

二、使用Jackson

Transforming beans, maps, collections, java arrays and XML to JSON,布布扣,bubuko.com

Transforming beans, maps, collections, java arrays and XML to JSON

原文:http://www.cnblogs.com/zouteng/p/3630471.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!