精华内容
下载资源
问答
  • date 转化成Json 字符串

    2013-09-06 17:12:22
    工具类: package com.hyzl.bpm.util; ...import java.text.SimpleDateFormat;...import java.util.Date; import java.util.Locale; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueP

    工具类:


    package com.hyzl.bpm.util;


    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Locale;
    import net.sf.json.JsonConfig;
    import net.sf.json.processors.JsonValueProcessor;


    /** * JSON 日期格式处理(java转化为JSON) */
    public class JsonDateValueProcessor implements JsonValueProcessor {
    private static JsonDateValueProcessor dateValueProcessor;
    /**
    * datePattern
    */
    private String datePattern = "yyyy-MM-dd HH:mm:ss";


    private JsonDateValueProcessor(){
    }
    public static JsonDateValueProcessor getInstance(){
    if(dateValueProcessor==null){
    dateValueProcessor = new JsonDateValueProcessor();
    }
    return dateValueProcessor;
    }
    public Object processArrayValue(Object value, JsonConfig jsonConfig) {
    return process(value);
    }


    public Object processObjectValue(String key, Object value,
    JsonConfig jsonConfig) {
    return process(value);
    }
    // 用于格式化date类型的值
    private Object process(Object value) {
    try {
    if (value instanceof Date) {
    SimpleDateFormat sdf = new SimpleDateFormat(datePattern,
    Locale.CHINESE);
    return sdf.format((Date) value);
    }
    return value == null ? "" : value.toString();
    } catch (Exception e) {
    return "";
    }
    }
    public static JsonConfig getJsonConfig(){
    JsonConfig jcfg = new JsonConfig();
    jcfg.registerJsonValueProcessor(Date.class,JsonDateValueProcessor.getInstance());
    return jcfg;
    }
    }

    把工具类放入工程,

    页面用使用: JSONObject.fromObject(dataMap,JsonDateValueProcessor.getJsonConfig());

    展开全文
  • 一:将对象转换成JSON字符串(序列化) 一:附:@JSONField注解 二:将JSON字符串转换为对象(反序列化) 主要内容是Java中的利用FastJson对JSON的序列化与反序列化。 一:将对象转换成JSON字符串(序列化) ...

    目录

    一:将对象转换成JSON字符串(序列化)

    一:附:@JSONField注解

    二:将JSON字符串转换为对象(反序列化)


    主要内容是Java中的利用FastJson对JSON的序列化与反序列化。

    一:将对象转换成JSON字符串(序列化)

    示例一:将对象转换成JSON字符串

    javaBean:

    import java.util.Date;
    
    public class Employee {
    	private Integer empno;
    	private String ename;
    	private String job;
    	private Date hdate;
    	private Float salary;
    	private String dname;
    	
    	public Employee() {}
    		
    	public Employee(Integer empno, String ename, String job, Date hdate, Float salary, String dname) {
    		super();
    		this.empno = empno;
    		this.ename = ename;
    		this.job = job;
    		this.hdate = hdate;
    		this.salary = salary;
    		this.dname = dname;
    	}
    	
    	public Integer getEmpno() {
    		return empno;
    	}
    	public void setEmpno(Integer empno) {
    		this.empno = empno;
    	}
    	public String getEname() {
    		return ename;
    	}
    	public void setEname(String ename) {
    		this.ename = ename;
    	}
    	public String getJob() {
    		return job;
    	}
    	public void setJob(String job) {
    		this.job = job;
    	}
    	public Date getHdate() {
    		return hdate;
    	}
    	public void setHdate(Date hdate) {
    		this.hdate = hdate;
    	}
    	public Float getSalary() {
    		return salary;
    	}
    	public void setSalary(Float salary) {
    		this.salary = salary;
    	}
    	public String getDname() {
    		return dname;
    	}
    	public void setDname(String dname) {
    		this.dname = dname;
    	}
    }
    

    示例程序: 

    import java.util.Calendar;
    
    import com.alibaba.fastjson.JSON;
    
    public class FastJsonSample1 {
    	
    	public static void main(String[] args) {
    		
    		Employee employee = new Employee();
    		employee.setEmpno(5566);
    		employee.setEname("刘芳");
    		employee.setJob("运维工程师");
    		employee.setSalary(10000f);
    		employee.setDname("工程部");
    		Calendar c = Calendar.getInstance();
    		// 月份是从0开始的,所以5代表六月;
    		c.set(2020, 5, 16, 10, 38, 0);
    		employee.setHdate(c.getTime());
    		
    		// FastJson中提供了JSON对象,完成对象与JSON字符串的互相转换
    		String jsonString = JSON.toJSONString(employee);
    		System.out.println(jsonString);
    	}
    
    }
    

    结果:

    {"dname":"工程部","empno":5566,"ename":"刘芳","hdate":1592275080504,"job":"运维工程师","salary":10000.0}

    …………………………………… 

    一:附:@JSONField注解

    发现,上面的hdate值是:1970年至当前设置时间的毫秒数,很难看懂;为了解决这个问题,需要用JSON注解来对日期格式进行格式化输出:@JSONField注解

    此时再次运行的效果:

    {"dname":"工程部","empno":5566,"ename":"刘芳","hdate":"2020-06-16 10:38:00 229","job":"运维工程师","salary":10000.0}

    此时效果:

    {"dname":"工程部","empno":5566,"ename":"刘芳","hdate":"2020-06-16","job":"运维工程师","salary":10000.0}

    @JSONField注解还可以对输出的key进行描述:

    如下在现实时,将不太容易明白什么意思的hdate换成了hiredate;

    @JSONField注解还可以取消个别属性的JSON序列化:

    如下,dname这个属性不重要,在转成JSON时不想要dname属性了:


    二:将JSON字符串转换为对象(反序列化)

    Employee emp = JSON.parseObject(jsonString, Employee.class):第一个参数为待转换的JSON字符串,第二个参数为想要转换的类;

    package com.imooc.json;
    
    import java.util.Calendar;
    
    import com.alibaba.fastjson.JSON;
    
    public class FastJsonSample1 {
    	
    	public static void main(String[] args) {
    		
    		Employee employee = new Employee();
    		employee.setEmpno(5566);
    		employee.setEname("刘芳");
    		employee.setJob("运维工程师");
    		employee.setSalary(10000f);
    		employee.setDname("工程部");
    		Calendar c = Calendar.getInstance();
    		// 月份是从0开始的,所以5代表六月;
    		c.set(2020, 5, 16, 10, 38, 0);
    		employee.setHdate(c.getTime());
    		
    		// FastJson中提供了JSON对象,完成对象与JSON字符串的互相转换
    		String jsonString = JSON.toJSONString(employee);
    		System.out.println(jsonString);
    		
    		// 将字符串反序列化为对象
    		Employee emp = JSON.parseObject(jsonString, Employee.class);
    		System.out.println(emp.getEname());		
    		
    	}
    }
    

    展开全文
  • 但是,如果我们将数据转换成json格式的时候,我们也许会遇到Date日期型的数据转换成json格式后,并不是我们想要的格式。下面我们通过简单的demo 来说明这个问题。 我们按照一般json格式生成,会出现以下问题: 采用...

    想必我们在做项目的时候,都会遇到服务端与客户端交互数据。一般情况下我们都会采用json格式或者xml格式,将服务端的数据转换成这两种格式之一。

    但是,如果我们将数据转换成json格式的时候,我们也许会遇到Date日期型的数据转换成json格式后,并不是我们想要的格式。下面我们通过简单的demo

    来说明这个问题。

    我们按照一般json格式生成,会出现以下问题:

    采用json:将数据生成json格式,需要导入相应的jar包,如下图:


    Student.java

    package com.xbmu.bean;
    
    import java.io.Serializable;
    import java.util.Date;
    public class Student implements Serializable {
    	private String username;
    	private Date birthday;
    	
    	public Student() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    	public Student(String username, Date birthday) {
    		super();
    		this.username = username;
    		this.birthday = birthday;
    	}
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public Date getBirthday() {
    		return birthday;
    	}
    	public void setBirthday(Date birthday) {
    		this.birthday = birthday;
    	}
    	@Override
    	public String toString() {
    		return "Student [username=" + username + ", birthday=" + birthday + "]";
    	}
    }
    
    TestDateValueToJson.java
    package com.xbmu.test;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import net.sf.json.JSONArray;
    import com.xbmu.bean.Student;
    public class TestDateValueToJson {
    	public static void main(String[] args) {
    		/**
    		 * 创建三个student对象,并将对象添加到List集合中
    		 * 
    		 * */
    		List<Student> list  = new ArrayList<Student>();
    		Student student = new Student("张三", new Date());
    		list.add(student);
    		student = new Student("李四",new Date());
    		list.add(student);
    		student = new Student("王五",new Date());
    		list.add(student);
    		
    		/**将list集合众的数据转换成json格式的字符串形式*/
    		JSONArray array = new JSONArray();
    		array = array.fromObject(list);
    		System.out.println(array.toString());
    

    运行Java应用程序,看见在控制台是哪个打印出了:(这里通过json格式化工具处理后了,方便大家阅读)

    [
        {
            "birthday": {
                "date": 3,
                "day": 4,
                "hours": 9,
                "minutes": 5,
                "month": 11,
                "seconds": 1,
                "time": 1449104701018,
                "timezoneOffset": -480,
                "year": 115
            },
            "username": "张三"
        },
        {
            "birthday": {
                "date": 3,
                "day": 4,
                "hours": 9,
                "minutes": 5,
                "month": 11,
                "seconds": 1,
                "time": 1449104701018,
                "timezoneOffset": -480,
                "year": 115
            },
            "username": "李四"
        },
        {
            "birthday": {
                "date": 3,
                "day": 4,
                "hours": 9,
                "minutes": 5,
                "month": 11,
                "seconds": 1,
                "time": 1449104701018,
                "timezoneOffset": -480,
                "year": 115
            },
            "username": "王五"
        }
    ]

    虽然符合json语法格式,但是里面的birthday字段是日期型的,并不是我们一般情况下需要的。这时候,我们就必须写一个工具类进行处理了。

    但遇到Date类型的数据的时候,就需要进行处理。

    JsonDateValueProcessor.java

    package com.xbmu.utils;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Locale;
    import net.sf.json.JsonConfig;
    import net.sf.json.processors.JsonValueProcessor;
    /**
     * 自定义JsonValueProcessor
     * 比如我们要控制JSON序列化过程中的Date对象的格式化,以及数值的格式化,JsonValueProcessor是最好的选择。
     * @author bitaotao
     *
     */
    public class JsonDateValueProcessor implements JsonValueProcessor {
    	private String pattern = "yyyy-MM-dd";
    
    	public Object processArrayValue(Object value, JsonConfig config) {
    		return process(value);
    	}
    
    	public Object processObjectValue(String key, Object value, JsonConfig config) {
    		return process(value);
    	}
    	private Object process(Object value){
    		if(value instanceof Date){
    			SimpleDateFormat sdf = new SimpleDateFormat(pattern, Locale.UK);
    			return sdf.format(value);
    		}
    		return value == null ? "" : value.toString();
    	}
    
    }

    除了自定义日期格式外,还可以如法炮制,控制数值格式化、HTML内容转码等。

    TestDateValueToJson.java

    package com.xbmu.test;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import net.sf.json.JSONArray;
    import net.sf.json.JsonConfig;
    import com.xbmu.bean.Student;
    import com.xbmu.utils.JsonDateValueProcessor;
    
    public class TestDateValueToJson {
    	public static void main(String[] args) {
    		/**
    		 * 创建三个student对象,并将对象添加到List集合中
    		 * 
    		 * */
    		List<Student> list  = new ArrayList<Student>();
    		Student student = new Student("张三", new Date());
    		list.add(student);
    		student = new Student("李四",new Date());
    		list.add(student);
    		student = new Student("王五",new Date());
    		list.add(student);
    		
    		/**将list集合众的数据转换成json格式的字符串形式*/
    		JsonConfig config = new JsonConfig();
    		JsonDateValueProcessor jsonValueProcessor = new JsonDateValueProcessor();
    		config.registerJsonValueProcessor(Date.class, jsonValueProcessor);
    		JSONArray array = new JSONArray();
    		array = array.fromObject(list,config);
    		System.out.println(array.toString());
    	}
    }	
    运行Java应用程序,会得到我们期望的json格式:

    [
        {
            "birthday": "2015-12-03",
            "username": "张三"
        },
        {
            "birthday": "2015-12-03",
            "username": "李四"
        },
        {
            "birthday": "2015-12-03",
            "username": "王五"
        }
    ]

    很显然这种日期格式,是我们经常使用的。也方便在客户端解析这种格式的json字符串。

    有什么不足之处,请各位博主指教。


    展开全文
  • object转化json字符串 var data = new Object(); var jsonData = JSON.stringify(data); json字符串转为js对象 var jsonObj = eval(jsonStr);

    json

    object转化为json字符串

    var data = new Object();
    var jsonData = JSON.stringify(data);
    

    json字符串转为js对象

    var jsonObj = eval(jsonStr);
    
    var jsonObj = JSON.parse(jsonStr);
    

    时间戳

    var timestamp = Date.parse(new Date());
    

    结果:1280977330000

    var timestamp=new Date().getTime()

    结果:1280977330748

    let 和 var

    阮一峰的ECMAScript 6 入门
    var
    var命令声明的,在全局范围内都有效,所以全局只有一个变量i
    let
    使用let,声明的变量仅在块级作用域内有效

    数组 Array

    1. 初始化
    2. 赋值
    3. 遍历
    	var x
    	var mycars = new Array()
    	
    	mycars[0] = "Saab"
    	mycars[1] = "Volvo"
    	mycars[2] = "BMW"
    	mycars.push("Saab")
    	
    	for (x in mycars)
    	{
    	document.write(mycars[x] + "<br />")
    	} 
    	
    	for (let a of mycars)
    	{
    	document.write(a + "<br />")
    	} 
    

    工具

    打印

    	console.log()
    
    展开全文
  • 使用 google gson 转换Timestamp或Date类型为JSON字符串
  • 假设要转换Json字符串,可以先尝试一种,记住最后把对象.ToString(),看看输出的格式是不是你想要的格式,是就OK,不是就尝试其他拼凑格式。 反过来转换也是一样的,你想转换成什么对象,就转换成什么对象。 string ...
  • 把bean转换成json字符串,

    千次阅读 2015-12-11 16:43:39
    /** * 把bean转换成json字符串, 日期格式默认为"yyyy-MM-dd" * * @param bean * 实例 * @return JSON字符串 */ public static String toJson(Object bean) { return toJson(bean
  • var data = $.parseJSON( date );
  • 将该实体类对象使用FastJSON转成JSON字符串后,发现时间字段变成了“148364681324”这样的时间戳 二、解决办法 针对上述问题,FastJSON提供了解决方法 方法1:在对应的实体类的属性上方定义一个注解 @JSONField...
  • javascrip将对象转换成json字符串

    千次阅读 2016-07-13 16:59:17
    将javascript对象转换成json字符串,扩展了Object的方法。 资源下载地址: http://download.csdn.net/detail/w172087242/9575125 下面是代码: /** * 对js对象的json序列化 * @author littlehow * @time 2016/7/13...
  • date类型转成json字符串后是一个相对来说复杂的字符串,如果要转会时间类型怎么办 示例如下 <html> <head> <script type="text/javascript"> function init() { //a是一个json字符串 var a=...
  • 后台date类型转换json字符串时,返回前台页面的是long类型的时间戳问题解决
  • 解决对象转成json字符串时,Date变成时间戳 JSON.toJSONStringWithDateFormat(obj,“yyyy-MM-dd”,SerializerFeature.WriteDateUseDateFormat) 第一个参数为要转换的对象,第二个参数为时间格式,第三个参数默认即可...
  • Field error in object 'diskFileAO' on ... codes [typeMismatch.diskFileAO.regulationInputTime,typeMismatch.regulationInputTime,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.co
  • 前台js数组json字符串,后台json字符串转为json数组,最后转换成集合的具体实现
  • 把list对象转换成json字符串

    千次阅读 2015-12-22 14:48:48
    在javaweb中,时候需要返回json数据到前端页面,这里列举一个把list数据格式转换成json数据格式的util类,可以把此类放在项目的util工具包下使用。 packagecom.pifeng.util; importjava.lang.reflect.Field; ...
  • struts2新增json返回类型,自动将action中的的成员变量转换成json字符串
  • 最近写案例使用到了json-lib中的JSONObject,将JavaBean转换json字符串,以及将json字符串转换为JavaBean对象。但是JSONObject只支持java.util.Date,而我们在JavaBean中存在java.sql.Date的属性时,会抛出异常...
  • 1.对象转json字符串 import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; public class Test{ public static void main...
  • 【SpringMVC】JSON字符串

    2021-07-06 14:07:26
    文章目录一、什么JSON二、在前端js对象与JSON的相互转换三、SpringMVC中解决JSON字符串乱码问题(固定代码)四、通过Jackson将java对象转换成json字符串1. 将普通对象转化JSON2. 将时间类(Date转换成JSON3. 封装...
  • 今天同事问我怎么讲js数组或者对象
  • JSON.stringify 把一个对象转换成json字符串 JSON.parse 把一个json字符串解析对象。 实例: var jsObj = {}; jsObj.testArray = [1,2,3,4,5]; jsObj.name = 'CSS3'; jsObj.date = '8 May, 2011'; ...
  • java对象转换JSON字符串

    千次阅读 2017-08-26 23:26:30
    JackSon将java对象转换JSON字符串 JackSon可以将java对象转换JSON字符串,步骤如下: 1.导入JackSon 的jar包 2.创建ObjectMapper对象 3.使用ObjectMapper对象的writeValueAsString()方法将java对象...
  • Date 类型的时间转换第二种方式; Java代码  Gson gson =  new  GsonBuilder().setDateFormat( "yyyy-MM-dd HH:mm:ss" ).create();  String jsonString = gson.toJson( new ...
  • 官方API说明文档 http://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json.htm ... ... 安装:1.解压下载文件,得到Newtonsoft.Json.dll2.在项目中添加引用..序列化和反序列在.net项目中: Product...
  • 含有java.util.Date类型的json字符串在前台js代码中解析不了 问题: 在将java.util.Date 类型字段转为json时,js代码中获取时取到的日期为[object object] ,无法进行操作。 【说明:我在页面中用...
  • 关于如何将含有Date类型属性的对象转换成符合实际应用的Json字符串 --即如何使用JsonConfig 以及 JsonValueProcessor接口实现 当我们将一个类实例转换成JSON字符串时 可以使用JSONObject 以及JSONArray两个常用的类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,517
精华内容 27,006
关键字:

有date转换成json字符串