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/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

发表回复

登录后才能评论