tag:blogger.com,1999:blog-59465307047421309702024-03-06T16:20:07.273+08:00Jax 的工作紀錄除了在整理學習上的經驗,同時也能幫助其他需要的人Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-5946530704742130970.post-62056537356998405962023-02-21T10:13:00.000+08:002023-02-21T10:13:02.767+08:00[Python] Flask 自訂日期的 Json 轉換<pre class="py" name="code">
import os
import datetime
import time
from flask import Flask, g, request, json
from flask.json import JSONEncoder
class CustomJsonEncoder(JSONEncoder):
# 針對日期自訂 Json 轉換
def default(self, obj):
if isinstance(obj, datetime.date):
return obj.isoformat().replace('T', ' ')
return super().default(obj)
app = Flask(__name__)
app.json_encoder = CustomJsonEncoder
app.config['JSON_AS_ASCII'] = False # 返回結果可以正確顯示中文
</pre>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com0tag:blogger.com,1999:blog-5946530704742130970.post-83209673505296905892015-03-01T20:14:00.000+08:002015-03-13T14:40:27.920+08:00[Java] Jackson Json Parser 筆記 <strong>Object Encode / Decode</strong><br />
<pre class="java:nocontrols" name="code">import java.util.Arrays;
import java.util.Date;
import com.fasterxml.jackson.databind.ObjectMapper;
class Album {
private int id;
private String title;
private Date date;
private String[] list;
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
public Date getDate() { return date; }
public void setDate(Date date) { this.date = date; }
public String[] getList() { return list; }
public void setList(String[] list) { this.list = list; }
@Override
public String toString() {
return String.format("id: %s, title: %s, date: %s, list: %s",
id, title, date, Arrays.toString(list)
);
}
}
public class TestJackson {
public static void main(String[] args) throws Exception {
Album album = new Album();
album.setId(1);
album.setTitle("Go Go Go!");;
album.setDate(new Date());
album.setList(new String[]{"Love", "Despair"});
ObjectMapper jsonMapper = new ObjectMapper();
String json = jsonMapper.writeValueAsString(album);
System.out.println(json);
// {"id":1,"title":"Go Go Go!","date":1425211903948,"list":["Love","Despair"]}
Album album2 = jsonMapper.readValue(json, Album.class);
System.out.println(album2);
// id: 1, title: Go Go Go!, date: Sun Mar 01 20:11:43 CST 2015, list: [Love, Despair]
}
}
</pre><br />
<br />
<strong>Parser to Map</strong><br />
<pre class="java:nogutter:nocontrols" name="code">ObjectMapper jsonMapper = new ObjectMapper();
Map<String,String> map;
map = jsonMapper.readValue(
"{\"name\":\"jax\", \"age\":\"31\"}",
new TypeReference<HashMap<String,String>>(){}
);
System.out.println(map);
// {age=31, name=jax}
jsonMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
jsonMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
map = jsonMapper.readValue(
"{name:'jax', age:'31'}",
new TypeReference<HashMap<String,String>>(){}
);
System.out.println(map);
// {age=31, name=jax}
</pre><br />
<br />
<strong>Encode Date</strong> <br />
<pre class="java:nogutter:nocontrols" name="code">Date date = new Date();
String json;
ObjectMapper jsonMapper = new ObjectMapper();
json = jsonMapper.writeValueAsString(date);
System.out.println(json);
// 1425211840183
jsonMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
json = jsonMapper.writeValueAsString(date);
System.out.println(json);
// "2015-03-01T12:10:40.183+0000"
</pre><br />
參考自:<a href="https://github.com/FasterXML/jackson-databind/" target="_blank">FasterXML/jackson-databind · GitHub</a><br />
Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com3