javabean转json的方法,java对象转json

发布时间:2023-12-08

javabean转json的方法,java对象转json

更新:2022-11-18 22:46

本文目录一览:

  1. android怎么将javabean转换成json
  2. java中一个包含bean属性的list集合 如何转换成JSON
  3. 带有对象属性的bean,如何转换成json对象或者字符串
  4. FastJson和Json以及@ResponseBody

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, Class<T> 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();
        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 + "****");
                }
            } catch (Exception e) {
                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转化为多个对象
List<Userinfo> 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> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final List<T> parseArray(String text, Class<T> 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 json = mapper.writeValueAsString(obj);

2. JSON转Java类[JSON反序列化]

ObjectMapper mapper = new ObjectMapper();
HashMap<String, Object> inMap = mapper.readValue(jsonStr, HashMap.class);