使用Dart和Start框架解析JSON

使用Dart和Start框架解析JSON,json,dart,Json,Dart,我正在尝试用Dart在服务器端聆听一个请求,我选择了,现在我有点被这个问题困扰了 假设服务器上有以下代码: class Games { Future<Server> startGamesServer() { List<Game> games = []; return start(port: 3010).then((Server app) { print("Starting http server"); app.put('/g

我正在尝试用Dart在服务器端聆听一个
请求,我选择了,现在我有点被这个问题困扰了

假设服务器上有以下代码:

class Games {
  Future<Server> startGamesServer() {
    List<Game> games = [];

    return start(port: 3010).then((Server app) {
      print("Starting http server");

      app.put('/games').listen((Request request) {
        request.payload().then((value) => print("hello")); <-- HERE
      });
    }
}
它甚至没有打印“你好”。。。根据文档,我觉得我没有正确使用
请求
对象:

put//添加处理程序,返回流

请求

回应

有没有办法从查询中获取实际的json映射?我想要一张包含以下内容的省道地图:

{ "hello" : "world" }
编辑:我通过以下操作打印了“{hello:world}”:

app.put(GAMES).listen((Request request) {
  print("put");
  request.input.listen((data) {
    print(JSON.decode(new String.fromCharCodes(data)));
  });
});

我不知道这是否是最好的方法。

如果发送JSON,则不能使用该函数,因为它看起来像是在解析响应中的formdata/键值对


通常应该是
JSON.decode(content)['hello']
,但您的框架不提供类似的功能。

您是否尝试
打印(content)
最终参数之前
?我不知道怎么做,因为
payload()
方法不是我的(它是Start的)。。。当我试图编辑文件时,它不会让我(来自IntelliJ)@GünterZöchbauer看到我的editI-See。我想我现在明白你的问题了,但不知道什么能解决这个问题。也许你有更好的机会通过在GitHub回购协议中创建一个问题得到回应。是的,也许。我有hello world的东西,但我觉得有点乏味不?我来自Java世界,所有东西都自动转换成对象,现在我必须解码字符串,哈哈!
header(String name, [value]) // get or set header
get(String name) // get header
set(String name) // set header
type(contentType) // set Content-Type
cache(String cacheType) // set Cache-Control
status(code) // sets response status code
cookie(name, val) // sets cookie
add(string) // add a string to response
close() // closes response
send(string) // sends string and closes response
json(Map data) // stringifies map and sends it
jsonp(String name, Map data) // stringifies map and sends it in callback as `name(data)`
render(viewName, [Map params]) // renders server view
{ "hello" : "world" }
app.put(GAMES).listen((Request request) {
  print("put");
  request.input.listen((data) {
    print(JSON.decode(new String.fromCharCodes(data)));
  });
});