小编Dan*_*ish的帖子

使用Jackson合并两个JSON文档

是否可以将两个JSON文档与Jackson JSON库合并?我基本上使用Jackson mapper和简单的Java Maps.

我试图在谷歌和杰克逊的文档中搜索,但找不到任何东西.

java json jackson

40
推荐指数
5
解决办法
5万
查看次数

如果没有要合并的话,如何在Mercurial中合并两个分支

我是一个善变的人,我正在尝试做一些非常简单但却无法弄清楚如何做的事情.我创建了一个分支来做一些实验而不会打扰主分支.

trunk       A -- B -- C
                       \
experiment              D -- E -- F
Run Code Online (Sandbox Code Playgroud)

我喜欢实验的方式,并希望将它与trunk合并并获得

trunk       A -- B -- C -- D -- E -- F
Run Code Online (Sandbox Code Playgroud)

但是,由于'trunk'分支中没有任何改变,合并表示没有任何合并,这是公平的.我只需要结束一个名为"trunk"的分支.我怎样才能做到这一点?

version-control merge mercurial

31
推荐指数
2
解决办法
4万
查看次数

如何为Spring数据中的类配置MongoDb集合名称

我有一个Products在我的MongoDB数据库中调用的集合,它由IProductPrice我的Java代码中的接口表示.以下存储库声明会导致Spring Date查看该集合db.collection: Intelliprice.iProductPrice.

我希望它将其配置为db.collection: Intelliprice.Products使用外部配置而不是放置@Collection(..)注释IProductPrice.这可能吗?我怎样才能做到这一点?

public interface ProductsRepository extends
    MongoRepository<IProductPrice, String> {
}
Run Code Online (Sandbox Code Playgroud)

java spring mongodb spring-data spring-data-mongodb

24
推荐指数
3
解决办法
3万
查看次数

如何在Jenkins中运行PowerShell脚本作为工作

这听起来像一个简单的问题但我在网上查看之后无法解决这个问题.我基本上想在Jenkins中执行powershell脚本(例如script.ps1)并报告成功/失败.

尝试1:运行以下"执行Windows批处理命令"

powershell -File c:\scripts\script.ps1
Run Code Online (Sandbox Code Playgroud)

这按预期启动,但在几秒后退出

尝试2:运行以下"执行Windows批处理命令"

powershell -NoExit -File c:\scripts\script.ps1
Run Code Online (Sandbox Code Playgroud)

这会成功运行整个脚本,但永远不会停止.我不得不手动中止脚本

powershell powershell-2.0 jenkins

22
推荐指数
2
解决办法
4万
查看次数

Java Arrays.sort()需要很长时间

我正在使用Java的Arrays.sort()函数按照上次修改时间对文件列表进行排序.245个文件的排序大约需要5秒钟.这对我来说似乎太长了.我觉得它不应该超过0.5秒.这是一个很好的假设吗?我究竟做错了什么?或者这听起来正常吗?

public static class LastModifiedComparator implements Comparator<File> {
    @Override
    public int compare(File f1, File f2) {
        return (int)(f1.lastModified() - f2.lastModified());
    }       
}

File folder = new File( "C:\\Whatever\\" );
File[] filesInFolder = folder.listFiles();
logger.debug("Starting File Sort");
Arrays.sort(filesInFolder, new LastModifiedComparator());
logger.debug("Done File Sort");
Run Code Online (Sandbox Code Playgroud)

日志输出

2012-08-10 14:24:20,333 DEBUG http-8080-4 <ClassName>:73 - Starting File Sort
2012-08-10 14:24:25,915 DEBUG http-8080-4 <ClassName>:75 - Done File Sort
Run Code Online (Sandbox Code Playgroud)

java sorting

15
推荐指数
2
解决办法
4247
查看次数

如何在Python中为字典创建唯一键

为字典内容生成唯一键的最佳方法是什么.我的目的是将每个字典与唯一的id或hash一起存储在文档存储中,这样我就不必从存储中加载整个字典来检查它是否已经存在.具有相同键和值的字典应生成相同的id或散列.

我有以下代码:

import hashlib

a={'name':'Danish', 'age':107}
b={'age':107, 'name':'Danish'}

print str(a)
print hashlib.sha1(str(a)).hexdigest()
print hashlib.sha1(str(b)).hexdigest()
Run Code Online (Sandbox Code Playgroud)

最后两个print语句生成相同的字符串.这是一个很好的实现吗?或者这种方法有什么缺陷吗?有一个更好的方法吗?

更新

结合以下答案的建议,以下可能是一个很好的实现

import hashlib

a={'name':'Danish', 'age':107}
b={'age':107, 'name':'Danish'}


def get_id_for_dict(dict):
    unique_str = ''.join(["'%s':'%s';"%(key, val) for (key, val) in sorted(dict.items())])
    return hashlib.sha1(unique_str).hexdigest()

print get_id_for_dict(a)
print get_id_for_dict(b)
Run Code Online (Sandbox Code Playgroud)

python hash dictionary

14
推荐指数
3
解决办法
1万
查看次数

如何使用Jackson将地图序列化为列表

如何将作为Map的值的属性序列化为Map的值?我已经能够使用@JsonSerialize(using=...)getter上的注释进行其他简单的转换.但是,我不确定是否存在我想做的事情.

java json jackson

10
推荐指数
1
解决办法
5973
查看次数

如何限制Python类上可用的属性

参加以下课程

class Person(object):

def __init__(self, first_name, last_name):
    self.first_name = first_name
    self.last_name = last_name
Run Code Online (Sandbox Code Playgroud)

如何防止以下使用?

p1 = Person('Foo', 'Bar')
p1.firstname='Fooooooo'
Run Code Online (Sandbox Code Playgroud)

上面的代码将在Python中成功执行,但是,使用属性的名称进行了错误,即它_first和之间缺失name

更新:这听起来像"猴子修补",我为什么要这样做?

我的目的是简单地帮助避免用户设置错误的属性,让代码执行,并看到意外的行为,而不是立即意识到错误.

Pythonic的推荐方式是什么?

python

7
推荐指数
1
解决办法
2252
查看次数

将Java控制台程序转换为Webapp

我有一个带有main()方法的Java类.它包含进行一些数字运算和分析的逻辑.它计划每天运行一次,如果需要可以再次手动运行.例程使用Log4j记录其活动.运行它并检查日志需要远程登录主机框.

我想将它转换为Web应用程序,在那里我可以通过网页触发它并查看日志的输出,理想情况是滚动时.

最好的方法是什么?Java webapp?一个简单的基于Web的脚本运行器?或者我可能不知道的任何其他选择.

更新: 有关要求的更多细节:

  1. 能够从网页启动程序
  2. 能够看到Log4j的滚动输出
  3. 如果我离开页面并再次返回,它应该让我知道上次运行仍在运行并显示日志.我不需要能够并行运行多个实例.

java web-applications

6
推荐指数
1
解决办法
1629
查看次数

如何从Java Spring MVC 3.0 Webapp流式传输文本响应

如何将文本输出流式传输到浏览器上的页面以显示可能需要大约15-20秒的操作进度?我已经尝试HttpServletResponse直接写入输出流,但用户在整个过程完成仍然可以看到完整的输出.

这是我到目前为止所尝试的

 @RequestMapping(value = "/test")
 public void test(HttpServletResponse response)
            throws IOException, InterruptedException {
    response.getOutputStream().println("Hello");
    response.getOutputStream().flush();
    Thread.sleep(2000);
    response.getOutputStream().println("How");
    response.getOutputStream().flush();
    Thread.sleep(2000);
    response.getOutputStream().println("are");
    response.getOutputStream().flush();
    Thread.sleep(2000);
    response.getOutputStream().println("you");
    response.getOutputStream().flush();
}
Run Code Online (Sandbox Code Playgroud)

java servlets spring-mvc

6
推荐指数
1
解决办法
3275
查看次数