我有一块JSON,看起来像这样:
{
"authors": {
"author": [
{
"given-name": "Adrienne H.",
"surname": "Kovacs"
},
{
"given-name": "Philip",
"surname": "Moons"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个存储作者信息的类:
public class Author {
@JsonProperty("given-name")
public String givenName;
public String surname;
}
Run Code Online (Sandbox Code Playgroud)
还有两个包装类:
public class Authors {
public List<Author> author;
}
public class Response {
public Authors authors;
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,但有两个包装类似乎是不必要的.我想找到一种方法来删除Authors类,并将列表作为Entry类的属性.杰克逊有可能做到这样吗?
使用自定义反序列化器解决了这个问题:
public class AuthorArrayDeserializer extends JsonDeserializer<List<Author>> {
private static final String AUTHOR = "author";
private static final ObjectMapper mapper = new ObjectMapper();
private static …Run Code Online (Sandbox Code Playgroud) 我已经开发了一个正则表达式来识别文本文件中的xml块.表达式看起来像这样(我删除了所有java转义斜杠以使其易于阅读):
<\?xml\s+version="[\d\.]+"\s*\?>\s*<\s*rdf:RDF[^>]*>[\s\S]*?<\s*\/\s*rdf:RDF\s*>
Run Code Online (Sandbox Code Playgroud)
然后我优化它并替换[\s\S]*?为.*?It突然停止识别xml.
据我所知,\s意味着所有的空格符号,\S意味着所有的非白色间隔符号或[^\s]因此[\s\S]逻辑上应该相当于.我没有用贪婪的过滤器,所以可能是什么区别?
我创建了一个带有某些节点的SVG元素:
gnodes = svg.selectAll("g.node")
.data(_nodes);
var newNodes = gnodes.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
.call(drag)
.on('mouseover', onMouseOver)
.on('mouseout', onMouseOut);
newNodes.append("circle")
.attr("cx", 0)
.attr("cy", 0)
.attr("r", radius);
newNodes.append("image")
.attr("xlink:href", getImage)
.attr("x", -radius/2)
.attr("y", -radius/2)
.attr("width", radius + "px")
.attr("height", radius + "px");
Run Code Online (Sandbox Code Playgroud)
在onMouseOver中,我想更改突出显示的圆圈的颜色,但是我无法从收到的数据中获得此项目:
function onMouseOver(d, i) {
var c1 = d.select("circle"); // error
var c2 = i.select("circle"); // error
var c3 = d.selectAll("circle"); // error
var c4 = i.selectAll("circle"); // …Run Code Online (Sandbox Code Playgroud) 有没有办法在构建时使用 Node.js 和 npm 自动压缩某些文件?
例如,我有一个项目,该文件结构如下所示:
Project/
--lib/
--node_modules/
--test/
--index.js
--package.json
Run Code Online (Sandbox Code Playgroud)
例如,我希望能够将 lib 文件夹、node_modules 和 index.js 中的某些模块压缩到一些 zip 存档中,以将其上传到 AWS Lambda 上。我不需要压缩测试文件夹或测试 Node.js 模块(mocha 和 chai)。我什至创建了一个用于生成 zip 文件的 bash 脚本,但是有没有办法在调用“npm install”时自动执行这个脚本?
这应该是一个标准的问题,它应该有一个标准的解决方案,但我无法发现这样的问题。
感谢 michael,决定使用 gulp。这是我的脚本,以防其他人需要它用于 AWS Lambda:
var gulp = require('gulp');
var clean = require('gulp-clean');
var zip = require('gulp-zip');
var merge = require('merge-stream');
gulp.task('clean', function () {
var build = gulp.src('build', {read: false})
.pipe(clean());
var dist = gulp.src('dist', {read: false})
.pipe(clean());
return merge(build, dist);
});
gulp.task('build', function() { …Run Code Online (Sandbox Code Playgroud)