似乎无法弄清楚这一点.我在GSON中尝试JSON树操作,但我有一个案例,我不知道或有一个POJO转换为字符串,在转换之前JsonObject
.有没有办法直接从a String
到JsonObject
?
我尝试了以下(Scala语法):
val gson = (new GsonBuilder).create
val a: JsonObject = gson.toJsonTree("""{ "a": "A", "b": true }""").getAsJsonObject
val b: JsonObject = gson.fromJson("""{ "a": "A", "b": true }""", classOf[JsonObject])
Run Code Online (Sandbox Code Playgroud)
但a
失败了,JSON被转义并解析为JsonString
唯一,并
b
返回一个空JsonObject
.
有任何想法吗?
首先 - 我理解SPDY和Websockets是不一样的,你可以通过SPDY运行Websockets,就像你可以使用HTTP等.
但是 - 我想知道如果我试图提供一个支持服务器推送的REST(类似)API(通过同一连接进行双向调用),SPDY是否可以替代websockets.
我当前的原型使用websockets(node + socket.io),并且工作正常.但是,我对websockets的问题是我不得不想出我自己的JSON协议来路由来往服务器的请求.我更倾向于在请求中使用REST样式的URI和Headers,这更适合基于REST的架构.SPDY似乎会更好地支持这一点.
此外,由于缺少标题,我担心websockets不适合我们的部署网络,并且认为SPDY将再次更适合.
但是,除了将文件推送到浏览器之外,我还没有看到很多双向SPDY请求的例子.我想将事件和数据推送到浏览器,例如:
Content-Type: application/json
{
"id": "ca823f3e233233",
"name": "Greg Brady"
}
Run Code Online (Sandbox Code Playgroud)
但我不清楚浏览器/ Javascript如何"监听"并对这些做出反应,就像我使用WebSocket和socket.io API一样.
从节点0.4.11升级到0.6.15,并注意到REPL(没有参数的运行节点)在大多数命令或车厢返回后继续转储"未定义"...
它会分散注意力并让我感到沮丧,你怎么禁用它?
>
undefined
>
undefined
>
undefined
>
undefined
> var x = 2
undefined
> x
2
>
Run Code Online (Sandbox Code Playgroud) 我可能会遗漏一些东西,但似乎Meteor的"魔力"围绕着将数据绑定到DOM元素,并通过把手更新文本和HTML片段:http: //docs.meteor.com/#reactivity
这很好,但是,当试图编写一个在<canvas>元素中显示实时数据的流星应用程序时,我无法弄清楚当实时数据发生变化时更新我的画布的"流星方式",因为画布是通过JS填充的代码如:
var g = canvas.getContext('2d')
g.fillRect(x, y, w, h)
Run Code Online (Sandbox Code Playgroud)
而不是HTML模板中的数据支持文本.
我试图使用来自Meteor.Collection的数据在画布上绘图.
我唯一的想法是在由车把变量填充的脚本标签中将画布绘制JS代码嵌入到HTML模板中,但这似乎是错误的,因为meteor的事件和数据绑定代码已经是客户端JS.
有没有办法监听实时数据更改,这会触发通过JS而不是HTML元素/文本在画布上绘图?
如果我能以某种方式澄清问题,请告诉我
更新: Tom的回答让我注意到Meteor.deps,它看起来允许在被动上下文中执行任意代码:http://docs.meteor.com/#on_invalidate
如果有效,我会尝试这个并在这里更新.
有谁知道在node.js应用程序中提供Calendar(CalDAV)接口的选项?
我见过jsDAV,但它似乎目前不支持CalDAV.
似乎node + express支持像*PROPFIND等的*DAV HTTP方法,但我怀疑将CalDAV impl直接写为我的应用程序的一部分是可行的.
任何想法或建议?
我是node.js的新手,并尝试使用焊接在服务器端渲染模板并使用express作为路由器.
但是,node.js的示例并未显示为内容提供服务,并且模糊了如何使用express:
var fs = require('fs'),
jsdom = require('jsdom');
jsdom.env(
'./test.html',
['./jquery.js', './weld.js'],
function(errors, window) {
var data = [{ name: 'hij1nx', title : 'code slayer' },
{ name: 'tmpvar', title : 'code pimp' }];
window.weld(window.$('.contact')[0], data);
}
);
Run Code Online (Sandbox Code Playgroud)
帮助或示例将不胜感激.
我确信这是一个非常简单的问题,但不好意思说我无法理解它:
我在Scala中有一个值列表.我想使用use actors与每个值并行地进行一些(外部)调用.
我想等到所有值都被处理完毕,然后继续.
没有修改共享值.
有人可以建议吗?
谢谢
有没有办法导入或注释Typescript模块,以便在生成与AMD兼容的模块时,外部AMD模块将自动作为依赖项包含在内?:
tsc --module AMD example.ts
Run Code Online (Sandbox Code Playgroud)
我试图包括引用*.d.ts文件和导出声明语句:
///<reference path='./lib/knockout-2.2.d.ts' />
export declare var $;
export declare var _;
export module example {
export class Example {
// whatever
}
}
Run Code Online (Sandbox Code Playgroud)
但是生成的模块不包括以下内容:
define(["require", "exports"], function(require, exports) {
(function (example) {
var Example = (function () {
function Example() { }
return Example;
})();
example.Example = Example;
})(exports.example || (exports.example = {}));
var example = exports.example;
})
Run Code Online (Sandbox Code Playgroud)
真的想避免在这里创建"假"模块.
这似乎是一个很好的解决方案,用法是允许直接导入AMD模块:
var $ = import('jquery'); // This is a requirejs/AMD module, not a typescript file. …
Run Code Online (Sandbox Code Playgroud) 我对如何在Meteor客户端代码中使用npm模块感到困惑.
我理解像fs这样的模块只能在服务器端工作,但在这种情况下,我想使用这样一个简单的文本模块来显示漂亮的日期:
https://github.com/ecto/node-timeago
我已经尝试在/ public/node_modules下安装模块,它在服务器端按照SO的说明工作得很好:( 我们如何通过npm与Meteor一起使用节点模块?)
Meteor.startup(function () {
var require = __meteor_bootstrap__.require
var timeago = require('timeago')
console.log(timeago(new Date()))
...
Run Code Online (Sandbox Code Playgroud)
但是它在客户端代码中不起作用:
if (Meteor.is_client) {
var require = __meteor_bootstrap__.require
var timeago = require('timeago')
console.log(timeago(new Date()))
...
Uncaught ReferenceError: __meteor_bootstrap__ is not defined"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,服务器端对我来说没用,因为我正在尝试在客户端上呈现文本.
我正在尝试编写一个提取器,用于匹配多参数案例类.简化示例:
case class X(p1: String, p2: Int)
Run Code Online (Sandbox Code Playgroud)
我希望每个提取器对象为p1定义一个固定值,并在使用时定义p2.(A,B等不能是case类和子类X,我也想用X(,)作为例子)apply方法的例子:
object A {
def apply(p2: Int): X = X("A", p2)
}
object B {
def apply(p2: Int): X = X("B", p2)
}
...
Run Code Online (Sandbox Code Playgroud)
对于模式匹配,我希望它们匹配如下:
X("A", 2) match {
case A(2) => true // <- should match: p1="A" and p2=2
case A(_) => true // <- should match: p1="A" and p2=_
case X("A", _) => true // <- should match: p1="A" and p2=_
case A(1) => false // <- should not …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将REST API的响应建模为案例类,我可以使用模式匹配.
我认为这是一个很好的假设继承,但我看到这是不赞成的.我知道已经存在与案例类和继承相关的问题,但我的问题更多的是关于如何在没有继承的情况下在这里建模"正确的方法" .
我从以下两个案例类开始,它们工作正常:
case class Body(contentType: String, content: String)
case class Response(statusCode: Int, body: Body)
Run Code Online (Sandbox Code Playgroud)
即REST调用将返回类似于:
Response(200, Body("application/json", """{ "foo": "bar" }"""))
Run Code Online (Sandbox Code Playgroud)
我可以模仿匹配,如:
response match {
case Response(200, Body("application/json", json)) => println(json)
case Response(200, Body("text/xml", xml)) => println(xml)
case Response(_,_) => println("Something unexpected")
}
Run Code Online (Sandbox Code Playgroud)
等工作正常.
我遇到麻烦的地方是:我想要这些案例类的帮助扩展,例如:
case class OK(body: Body) extends Response(200, body)
case class NotFound() extends Response(404, Body("text/plain", "Not Found"))
case class JSON(json: String) extends Body("application/json", json)
case class XML(xml: String) extends Body("text/xml", …
Run Code Online (Sandbox Code Playgroud) 我根据之前提出的问题的答案进行全屏布局:
线框我正在使用:
编辑:这是一个非常相似的布局行为,我想在Zurb 4中重新创建(宽度和高度不需要修复):http: //stevesanderson.github.com/fixed-height-layouts-demo/窗格跃迁,tablet.html
效果很好,但是我现在正试图在Zurb Foundation 4中建模相同/相似的布局但是遇到两件事情有困难:
目前还不清楚我如何让B和E垂直独立滚动(想想Mac上的Mail.app布局)
目前还不清楚我如何将C和F固定在屏幕的底部.
与我之前的问题不同,我不打算为这些部分设置固定的像素宽度.
注意:我相信移动优先设计,但我不明白为什么其中任何一个都不会被视为"响应". 我打算根据设备和方向调整大小并显示/隐藏部分.但Zurb似乎缺少滚动和全高的部分.
所以,它是2010年,我仍然不知道如何在CSS中做这个布局..
对不起,如果这有明显的答案,我感谢您提供的任何帮助.
我已经看到了部分解决的紧密解决方案,但并非所有这些组合在一起.
alt text http://img203.imageshack.us/img203/6096/layoutc.png