1. 程式人生 > >Json 和複雜 Bean 之間的轉化

Json 和複雜 Bean 之間的轉化

使用json-lib

如果不使用maven 需要下面4個jar

commons-beanutils-1.8.3.jar

commons-lang-2.3.jar

ezmorph-1.0.6.jar

json-lib-2.4-jdk15.jar

使用maven 

Pom.xml

        <!--Start json-->
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
          <span style="color:#ff0000;">  <classifier>jdk15</classifier></span>
        </dependency>

json-lib  有jdk13 和jdk15 兩個版本,使用時請指明使用哪個版本。
package json;

/**
 * Created with IntelliJ IDEA.
 * User: Alvin
 * Date: 14-8-6
 * Time: 上午10:24
 * To change this template use File | Settings | File Templates.
 */
import bean.Student;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import bean.Dormitory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class JsonUtil {
    /*
     *  普通型別、List、Collection等都是用JSONArray解析
     *
     *  Map、自定義型別是用JSONObject解析
     *  可以將Map理解成一個物件,裡面的key/value對可以理解成物件的屬性/屬性值
     *  即{key1:value1,key2,value2......}
     *
     * 1.JSONObject是一個name:values集合,通過它的get(key)方法取得的是key後對應的value部分(字串)
     *         通過它的getJSONObject(key)可以取到一個JSONObject,--> 轉換成map,
     *         通過它的getJSONArray(key) 可以取到一個JSONArray ,
     *
     *
     */

    //一般陣列轉換成JSON
    public String Array2Json(){
        String[] array ={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
        JSONArray jsonArray = JSONArray.fromObject(array);
        return jsonArray.toString();
    }

    //Collection物件轉換成JSON
    public String list2Json(){
        List list = new ArrayList();
        list.add( "first" );
        list.add( "second" );
        JSONArray jsonArray = JSONArray.fromObject( list );
        return jsonArray.toString();
    }

    //Map轉換成json, 是用jsonObject
    public String map2Json(){
        Map map = new HashMap();
        map.put( "name", "json" );
        map.put( "bool", Boolean.TRUE );
        map.put( "int", new Integer(1) );
        map.put( "arr", new String[]{"a","b"} );
        map.put( "func", "function(i){ return this.arr[i]; }" );
        JSONObject jsonObject = JSONObject.fromObject(map);
        return jsonObject.toString();
    }


    // Bean 2 Json
    public String bean2Json(){
        List<Student> students = new ArrayList<Student>();
        Student st1 = new Student(2111212049,"張三",25,"
[email protected]
"); Student st2 = new Student(2111212049,"李四",25,"[email protected]"); Student st3 = new Student(2111212049,"王五",25,"[email protected]"); Student st4 = new Student(2111212049,"趙六",25,"[email protected]"); students.add(st1); students.add(st2); students.add(st3); students.add(st4); Dormitory dormitory = new Dormitory("東13#",206,students); JSONObject jsonObject = JSONObject.fromObject(dormitory); return jsonObject.toString(); } public Object json2Bean(String json){ JSONObject jsonObject = JSONObject.fromObject(json); Dormitory dormitory = null; if(jsonObject != null) { <span style="color:#ff0000;"> Map<String, Class> m = new HashMap<String, Class>(); m.put("students", Student.class);</span> dormitory = (Dormitory) jsonObject.toBean(jsonObject,Dormitory.class,m); } return dormitory; } }
package bean;

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

/**
 * Created with IntelliJ IDEA.
 * User: Alvin
 * Date: 14-8-6
 * Time: 上午10:46
 * To change this template use File | Settings | File Templates.
 */
public class Dormitory {
    private String address;
    private int num;
    private Student student = new Student();

    private List<Student> students ;


    public Dormitory() {
    }

    public Dormitory(String address, int num, List<Student> students) {
        this.address = address;
        this.num = num;
        this.students = students;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public List<Student> getStudents() {
        return students;
    }

    public void setStudents(List<Student> students) {
        this.students = students;
    }
}

package bean;

/**
 * Created with IntelliJ IDEA.
 * User: Alvin
 * Date: 14-8-1
 * Time: 下午4:13
 * To change this template use File | Settings | File Templates.
 */
public class Student {
    private int num;
    private String name;
    private int age;
    private String email;

    public Student() {
    }

    public Student(int num, String name, int age, String email) {
        this.num = num;
        this.name = name;
        this.age = age;
        this.email = email;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}


複雜bean 的轉化 注意如下幾點

1。為轉化的類構建無參的構造方法;

2.注意上面紅色部分程式碼,需要為複雜bean 裡面的bean傳入bean的型別。

相關推薦

Json 複雜 Bean 之間轉化

使用json-lib 如果不使用maven 需要下面4個jar commons-beanutils-1.8.3.jar commons-lang-2.3.jar ezmorph-1.0.6.jar json-lib-2.4-jdk15.jar 使用maven  P

project.json csproj 屬性之間的映射

ont some form ati put git ast property using 作者 Nate McMaster .NET Core 工具的開發過程中實施了一項重要的設計更改,即不再支持 project.json 文件,而是將 .NET Core 項目轉移

JSONJAVA物件之間的轉換小結

    JSON(JAVAScript Object Notation, JS 物件簡譜) 是一種輕量級的資料交換格式。它基於歐洲計算機協會制定的js規範的一個子集,採用完全獨立於程式語言的文字格式來儲存和表示資料。    1.為了便於轉換,需要

JS中如何使用EL表示式中的物件 JSONJS物件之間的互轉

JS中如何使用EL表示式中的物件 2017年09月25日 15:33:09 lhpnba 閱讀數:4859   1.js中使用el表示式要加雙引號或單引號:'${list}' 2.js變數獲取el表示式中的物件:不能直接獲取,直接獲取得到的是該物件的

關於JSONXML格式之間的轉換

1.JSON轉XML /** * json字串轉換成xml格式字串 * * @return */ public static String json2Xml() { String json = "{\"business\":{\"body\":{\"fpdm\":\"發

json物件的相互轉化

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">使用com.fasterxml.jackson.databind.Obj

C# .net中json字符串對象之間轉化方法

tools ade href start 反射 serialize lan serializa serial http://blog.csdn.net/xuexiaodong009/article/details/46998069 json作為作為一種最常用的數據,

轉:jsonlist、bean之間轉換總結

//方法一,將json解析後賦給單獨的元素 String jstr="{'json':'jsonvalue','bool':true,'int':1,'double':'20.5'}";JSONObject json=JSONObject.

JS中實現JSON對象JSON字符串之間的相互轉換

獲取 bsp com .com ins 對象 ie7 strong line 對於主流的瀏覽器(比如:firefox,chrome,opera,safari,ie8+),瀏覽器自己提供了JSON對象,其中的parse和stringify方法實現了JSON對象和JSON字符串

JAVA裏面jsonjava對象之間的相互轉換

users str ons from ini java 互轉 json字符串 lis 1. 把java 對象列表轉換為json對象數組,並轉為字符串 JSONArray array = JSONArray.fromObject(list); String js

java web 基礎 json javaBean轉化

bubuko AI this set 實體 .json setname 自動 AS github地址: https://github.com/liufeiSAP/JavaWebStudy 實體類: package com.study.demo.domain; imp

json字符串json對象的相互轉化

gif obj color java span type code 常用 json 開發經常要用到json字符串和json對象的相互轉化,這裏總結常用的兩個函數。JSON.parse(‘字符串‘),JSON.stringify(‘json對象‘) 1 <scrip

Json字串js物件之間的轉換

Json字串和js物件之間的轉換 JSON.stringify()將js物件轉為json字串 JSON.parse()將JSON字串轉為js物件 補充(json物件和json字串的區別) json 字串 var str1 = '{ "nam

Flutter 聯網JSON轉換成Bean

Flutter 聯網和JSON轉換成Bean Flutter的聯網分為HttpClient和dio兩種。HttpClient是dart io中的HttpClient發起的請求,但HttpClient本身功能較弱,很多常用功能都不支援。dart io官網文件. dio是一個強大的Da

json的四大函式介紹(json資料python資料之間的轉換)

json的四大函式介紹 在我們進行後端開發和爬蟲開發的時候,常會遇到json資料和python資料的轉換, 而這些轉換雖然簡單,但是卻很容易讓人產生混淆和困惑, 接下來我將對json資料和python資料格式的轉換做一個小的介紹,希望對各位讀者能夠起到一定的幫助… 1.loa

spring_(6)bean之間的關係之繼承依賴

Bean的繼承 **Spring允許繼承bean的配置,**被繼承的bean稱為父bean。繼承這個父Bean的Bean稱為子Bean. 子Bean從父Bean中繼承配置,包括Bean的屬性配置. 子Bean也可以覆蓋從父Bean繼承過來的配置. 父Bean可

JsonBean間的序列化反序列化(JSONObject、Gson、FastJson的使用)

json格式校驗 日常開發經常涉及到和json的互動,以下原因會常常會使json格式錯誤: 1、json串的非數字型的鍵值沒有雙引號 2、json中存在\t這樣的表符,這個比較難發現 3、json中缺少{}或[]導致結構不完整 可以通過FE助手或網頁版的json校驗json格

List二維陣列之間轉化及初始化

ArrayList resultsList = new ArrayList(); String[] result = { "cr_tx_amt",(f_fare", "counts" }; resultsList.add(result); String[][] resul

JSON資料與物件之間的快速轉化----原生org.json實現

java物件和json資料之間的轉換方式一般有兩種,一種是引用第三方的jar包,如Gson(谷歌)、Fastjson(阿里)、Jackson等,這種方式優點是語法精練,可以實現一句話轉化,但缺點是會引入龐大的第三方庫,第二種是直接使用Java自帶的org.json解析,但這個

有關Unicode非Unicode之間轉化問題

       自昨天開了部落格之後,就打算今天晚上寫點什麼來作為我的第一篇部落格(處女作)。        經過百般考量,小編決定寫寫有關Unicode和非Unicode編碼下,一些型別轉化的問題。(其實是小編對這整整一個晚上的程式碼除錯,對Unicode和非Unicode