javabean轉json的方法,java對象轉json

本文目錄一覽:

android怎麼將javabean轉換成json

前提條件是javaBean必須有getter和setter方法而且,必須有無參的構造方法

package com.cn.parse_json;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.lang.reflect.Field;

import org.json.JSONObject;

import android.os.Environment;

import android.util.Log;

import android.widget.Toast;

public class ParseJson2BeanUtils {

public static T T parseJson2Bean(JSONObject object,ClassT clazz ) throws Exception{

FileInputStream fis = new FileInputStream(“/mnt/sdcard/json.txt”);

int len = fis.available();

byte[] buffer = new byte[len];

fis.read(buffer);

object = new JSONObject(new String(buffer));

T newInstance = null;

Field[] fields = clazz.getFields();

//只要保證clazz有一個無參的public構造方法就不可能發生異常

try {

newInstance = clazz.newInstance();

} catch (Exception e) {

e.printStackTrace();

}

for(int i = 0;i fields.length;i++){

String name = fields[i].getName();

//不可能發生的異常

try {

String jsonName = name.replaceFirst(name.substring(0, 1), name.substring(0, 1).toUpperCase());

if(object.has(jsonName)){

if(jsonName.equals(“ResultCode”)){

fields[i].set(newInstance, object.getInt(jsonName));

}else{

fields[i].set(newInstance, object.getString(jsonName));

}

Log.i(“name”, name+”****”);

}

//Log.i(“name”, jsonName+”:”+object.has(jsonName)+object.getString(jsonName));

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return newInstance;

}

}

java中一個包含bean屬性的list集合 如何轉換成JSON

java中的list是數組的變形,換句話說,list就是可變換長度的數組。因此java中的list轉換成JSON後就成了JSON中的數組;

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網絡傳輸速率)。

java中將一個java對象轉換成一個json,如果要去實現的話,比較麻煩,當下有很多java對象與json字符串之間轉換的工具,例如google的開源工具Gson(jar包),通過它就可以直接將java對象作為入參傳進去,返回一個json字符串。

帶有對象屬性的bean,如何轉換成json對象或者字符串

fastjson轉化如下:

public class Userinfo {

private String username;

private String password;

private Address address;

//省略相應的get/set方法

}

//json轉化單個對象

Userinfo userinfo = JSON.parseObject(jsonString, Userinfo.class);

//json轉化為多個對象

ListUserinfo list = JSON.parseArray(jsonString, Userinfo.class);

對象轉化為JSON

JSON json = JSON.toJSON(userinfo);

FastJson和Json以及@ResponseBody

@Restcontroller是@Controller和@ResponseBody的結合體,將後台返回的Java對象轉換為Json字符串傳遞給前台。它是springmvc通過配置MappingJackson2HttpMessageConverter實現的,spring默認帶的轉json包為jackson,因為fastJson比較快一般會引入fastjson來替換。

解決bean與json字段不一致問題,或者字段定義不符合前端所需要的標準,需要使用@JsonProperty和@JSONField註解。

@jsonProperty是Jackson的包,@JSONproperty這個註解用於屬性上面

而@jsonfield是fastjson的包,@JSONField這個註解可以用於get、set以及屬性上面@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)是時間的格式化,可以用於get、set以及屬性上面

FastJson是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。FastJson的API十分簡潔,FastJson重要的類為JSONObject,經常調用的方法如下:

public static final Object parse(String text); // 把JSON文本parse為JSONObject或者JSONArray

public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject

public static final T parseObject(String text, Class clazz); // 把JSON文本parse為JavaBean

public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray

public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合

public static final String toJSONString(Object object); // 將JavaBean序列化為JSON文本public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean序列化為帶格式的JSON文本

public static final Object toJSON(Object javaObject); 將JavaBean轉換為JSONObject或者JSONArray。

Jackson相對來說比較高效的Json類庫,在項目中主要使用Jackson進行JSON和Java對象轉換,Jackson ObjectMapper類是使用Jackson解析JSON最簡單的方法。可以從字符串、流或文件解析JSON,並創建Java對象或對象圖來表示已解析的JSON。將JSON解析為Java對象也稱為從JSON反序列化Java對象

1.JAVA對象轉JSON

ObjectMapper mapper = new ObjectMapper();

String bjectMapper = mapper.writeValueAsString(obj);

2.JSON轉Java類[JSON反序列化]

ObjectMapper mapper = new ObjectMapper();

HashMapString, Object inMap = mapper.readValue(jsonStr, HashMap.class);

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/249889.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 17:12
下一篇 2024-12-12 17:12

相關推薦

  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有着廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python學習筆記:去除字符串最後一個字符的方法

    本文將從多個方面詳細闡述如何通過Python去除字符串最後一個字符,包括使用切片、pop()、刪除、替換等方法來實現。 一、字符串切片 在Python中,可以通過字符串切片的方式來…

    編程 2025-04-29
  • 用法介紹Python集合update方法

    Python集合(set)update()方法是Python的一種集合操作方法,用於將多個集合合併為一個集合。本篇文章將從以下幾個方面進行詳細闡述: 一、參數的含義和用法 Pyth…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟件。在VB中,有許多不同的方法可以運行程序,包括編譯器、發佈程序以及命令行。在本文中…

    編程 2025-04-29

發表回復

登錄後才能評論