【发布时间】:2015-08-23 10:15:53
【问题描述】:
在 Spring MVC + Jackson (Java) 中,我可以拥有这个:
我的对象 (Java)
public class Project {
private long id;
private String self;
private String key;
private String name;
//Getters and Setters
}
Spring MVC 控制器
...
@RequestMapping(value="/doSomething", method=RequestMethod.POST)
public String doSomething(@RequestBody Project project) {
System.out.println(project.getName());
return "myPage";
}
...
然后,我可以发送一个像这样的json:
{"id": "exampleId", "name": "exampleName","self": "url","key": "key"}
它会自动转换为我的对象。在 Python 上,我有我的对象类。 Flask 中有一些东西我可以调用:
烧瓶控制器
@app.route('/doSomething', methods=['POST'])
def do_something(project):
print project.name
return "myPage"
我的对象 (Python)
class Project():
id=None
name=None
url=None
key=None
基本上,我想在 Flask 上接收我的 JSON 并且已经转换为我的对象。我想避免这样做:
class Project(object):
def __init__(self, id, url, name, key):
self.id = id
self.url = url
self.name = name
self.key = key
...
import json
my_json = json.loads(request.data)
user = Project(**j)
这样,我将不得不从我的所有对象中覆盖 init。或者这样:
project = json.loads('{"__type__": "Project", "name": "project", "key": "key"}')
print project['name']
print project['key']
也不好,因为它不是我的对象,它是一个字典。
这可能吗?还是我必须选择其中之一?
【问题讨论】:
标签: java python json spring-mvc flask