添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

今天主要是学习JSONObject(import com.alibaba.fastjson.JSONObject)这个工具类里面的方法有哪些:

第一个方法:将对象转换成字符串:

JSONObject.toJSONString(Object obj);

具体实现有:

public static String toJSONString(Object object) {
        return toJSONString(object, emptyFilters);
    }

而toJSONString方法如:

public static String toJSONString(Object object, SerializeFilter[] filters, SerializerFeature... features) {
        return toJSONString(object, SerializeConfig.globalInstance, filters, null, DEFAULT_GENERATE_FEATURE, features);
    }

接着toJSONString方法实现如:

public static String toJSONString(Object object, // 
                                      SerializeConfig config, // 
                                      SerializeFilter[] filters, // 
                                      String dateFormat, //
                                      int defaultFeatures, // 
                                      SerializerFeature... features) {
        SerializeWriter out = new SerializeWriter(null, defaultFeatures, features);
        try {
            JSONSerializer serializer = new JSONSerializer(out, config);
            if (dateFormat != null && dateFormat.length() != 0) {
                serializer.setDateFormat(dateFormat);
                serializer.config(SerializerFeature.WriteDateUseDateFormat, true);
            if (filters != null) {
                for (SerializeFilter filter : filters) {
                    serializer.addFilter(filter);
            serializer.write(object);
            return out.toString();
        } finally {
            out.close();
    }

-----------------------------------------

第二个:将字符串转换成对象:

JSONObject jsonObject = JSONObject.parseObject(result);

具体实现代码如:

public static JSONObject parseObject(String text) {
        Object obj = parse(text);
        if (obj instanceof JSONObject) {
            return (JSONObject) obj;
        try {
            return (JSONObject) JSON.toJSON(obj);
        } catch (RuntimeException e) {
            throw new JSONException("can not cast to JSONObject.", e);
    }

第三个,根据KEY获取到值:

JSONObject objResult = jsonObject.getJSONArray("data").getJSONObject(0).getJSONObject("result");

ruby json转对象 jsonobject 转string_字符串

getJSONArray方法实现代码如:

public JSONArray getJSONArray(String key) {
        Object value = map.get(key);
        if (value instanceof JSONArray) {
            return (JSONArray) value;
        if (value instanceof String) {
            return (JSONArray) JSON.parse((String) value);
        return (JSONArray) toJSON(value);
    }

第四个方法根据索引获取到第一个对象:getJSONObject(int index),实现代码如:

public JSONObject getJSONObject(int index) {
        Object value = list.get(index);
        if (value instanceof JSONObject) {
            return (JSONObject) value;
        return (JSONObject) toJSON(value);
    }

第五个方法根据字符串也就是key查询到对应key的值:

public JSONObject getJSONObject(String key) {
        Object value = map.get(key);
        if (value instanceof JSONObject) {
            return (JSONObject) value;
        if (value instanceof String) {
            return JSON.parseObject((String) value);
        return (JSONObject) toJSON(value);
    }

=====================================================================================

第一步:业务需求是:使用@JSONField注解转换一个对象的属性名变成另一个名字传递给其他接口作为入参的方式:

首先定义一个对象类FundRevealInputModel为:

public class FundRevealInputModel  implements Serializable{
	 * 序列号
	private static final long serialVersionUID = 1L;
	@JSONField(name = "p_fundcode")
	private String fundCode;
	@JSONField(name = "p_year")
	private String year;
	@JSONField(name = "p_cycle")
	private String cycle;
}

然后业务逻辑层实现代码:

FundRevealInputModel inputModel = new FundRevealInputModel();
		inputModel.setFundCode(fundCode);
		inputModel.setYear(year);
		inputModel.setCycle(cycle);
		String jsonString = JSONObject.toJSONString(inputModel);

inputModel对象为:

ruby json转对象 jsonobject 转string_字符串_02

接着使用JSONObject.toJSONString方法讲对象转换成字符串:

ruby json转对象 jsonobject 转string_ruby json转对象_03

经过转换成字符串传递给其他接口成功访问到数据之后,获得的结果是字符串,如何将字符串转化为json对象返回给前端呢?

使用的JSONObject.parseObject这个方法

ruby json转对象 jsonobject 转string_json_04

得到jsonObject结果为:

ruby json转对象 jsonobject 转string_ruby json转对象_05

接着获取到result的值:

ruby json转对象 jsonobject 转string_json_06

=====================================

public static String toJSONString(Object object, //                                       SerializeConfig config, //                                       SerializeFilter[] filters, //                                       String dateFormat, //                                      int defaultFeatures, //                                       SerializerFeature... features) {        SerializeWriter out = new SerializeWriter(null, defaultFeatures, features);
        try {            JSONSerializer serializer = new JSONSerializer(out, config);                        if (dateFormat != null && dateFormat.length() != 0) {                serializer.setDateFormat(dateFormat);                serializer.config(SerializerFeature.WriteDateUseDateFormat, true);            }
            if (filters != null) {                for (SerializeFilter filter : filters) {                    serializer.addFilter(filter);                }            }
            serializer.write(object);
            return out.toString();        } finally {            out.close();        }    }


java拖动验证码识别 验证码javaweb

方法一:1、前端显示HTML:<h3>验证码:</h3> <input type="text" name="validationCode" id="validationCode" placeholder="请输入验证码" lay-verify="required"> <img src="validate.jsp" id="validationCode_i