我正在使用Flickr API.调用flickr.test.login方法时,默认的JSON结果是:
{
"user": {
"id": "21207597@N07",
"username": {
"_content": "jamalfanaian"
}
},
"stat": "ok"
}
Run Code Online (Sandbox Code Playgroud)
我想将此响应解析为Java对象:
public class FlickrAccount {
private String id;
private String username;
// ... getter & setter ...
}
Run Code Online (Sandbox Code Playgroud)
应该像这样映射JSON属性:
"user" -> "id" ==> FlickrAccount.id
"user" -> "username" -> "_content" ==> FlickrAccount.username
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法使用Annotations找到一个漂亮,优雅的方法.到目前为止,我的方法是将JSON字符串读入a Map<String, Object>并从那里获取值.
Map<String, Object> value = new ObjectMapper().readValue(response.getStream(),
new TypeReference<HashMap<String, Object>>() {
});
@SuppressWarnings( "unchecked" )
Map<String, Object> user = (Map<String, Object>) value.get("user");
String id = (String) …Run Code Online (Sandbox Code Playgroud) 我正在编写一个angular.js指令,它是一个对象数组的可重用输入组件.
由于不可能使用原始值ng-repeat(参见:对于数据绑定许多输入的angularjs方法是什么?),我必须将一个对象数组传递给组件:
在控制器中我初始化:
$scope.theSimpsons = [{ value: 'Bart' }, { value: 'Lisa' }];
Run Code Online (Sandbox Code Playgroud)
然后在HTML文件中使用它:
<div ng-app="App">
<div ng-controller="AppCtrl">
<multi-input items="theSimpsons" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
该指令本身实现如下:
directive('multiInput', function () {
return {
restrict: 'E',
scope: {
items: '=items'
},
template:
'<div>' +
'<div ng-repeat="item in items">' +
'<input type="text" ng-model="item.value">' +
'<a ng-click="items.splice($index, 1)">remove</a>' +
'</div>' +
'<a ng-click="items.push({value:\'\'})">add</a>' +
'</div>'
};
});
Run Code Online (Sandbox Code Playgroud)
这一切都很好.
我的问题:如果对象没有value?
该指令value很难对property()的名称进行编码.但是,如果我想拥有这样一个阵列:[{ name: 'Bart' }, { name: 'Lisa' }] …
我不是在抱怨,而是想了解它为什么有效。
这是我的 Java 类:
public static class ExampleClass {
private Path target;
public Path getTarget() {
return target;
}
public void setTarget(Path target) {
this.target = target;
}
}
Run Code Online (Sandbox Code Playgroud)
这是 JSON:
{
"target": "some/path"
}
Run Code Online (Sandbox Code Playgroud)
现在一个简单的测试表明它有效:
ObjectMapper mapper = new ObjectMapper();
ExampleClass exampleClass = mapper.readValue(json, ExampleClass.class);
assertEquals(Path.of("some/path"), exampleClass.getTarget());
Run Code Online (Sandbox Code Playgroud)
但是如何?中没有(公共)构造函数Path,它接受String. Jackson 怎么知道它需要调用Path.of()?
我在使用官方Maven插件和Java 7与Google Appengine时遇到了麻烦.
我的项目配置pom.xml非常简单:
在我配置的属性部分中:
<gae.version>1.7.4</gae.version>
Run Code Online (Sandbox Code Playgroud)
后来我使用插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>${gae.version}</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)
每当我运行时,mvn appengine:update我都会收到以下错误:
无法更新应用程序:应用程序包含Java 7类,但尚未设置--use_java7标志.
当然,我试图解决这个问题.运行
mvn appengine:update --use_java7
Run Code Online (Sandbox Code Playgroud)
要么
mvn appengine:update -D--use_java7
Run Code Online (Sandbox Code Playgroud)
没有帮助,因为该标志不用于Maven插件,而是用于appcfg脚本.
如何将标志传递给脚本,以便我可以使用Java 7(或者我还能做什么)?
我正在尝试使用IntervalJoda Time类,但我无法使用它的构造函数.它不采用这种格式.
我试图DateTime从格式的mysql DB中提取两个,yyyy-MM-dd HH:mm:ss并以String格式检索它.我试图将其转换为日期格式,但间隔类无法采用日期格式.请帮助我应该使用什么???
String text = "2011-10-02 18:48:05";
String text2 = "2011-10-02 18:50:05";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date olddate=sdf.parse(text);
Date newdate=sdf.parse(text2);
System.out.println(olddate);
System.out.println(newdate);
// Interval interval = new Interval(olddate, newdate);
} catch (ParseException ex) {
JOptionPane.showMessageDialog(null, "Error at Timestamp subtract Format function Dategenerator" + ex.getMessage());
}
Run Code Online (Sandbox Code Playgroud) 在Java中,使用以下正则表达式
To: a@b\.com.*Subject: Please verify your email address
Run Code Online (Sandbox Code Playgroud)
不知何故在这段文字中找不到匹配:
Dez 21, 2012 10:29:58 AM com.google.appengine.api.datastore.dev.LocalDatastoreService init
INFO: Local Datastore initialized:
Type: High Replication
Storage: In-memory
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO: MailService.send
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO: From:
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO: To: a@b.com
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO: Subject: Please verify your email address
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO: Body:
Dez 21, 2012 10:29:58 …Run Code Online (Sandbox Code Playgroud) 我有一个字符串
String myString = "hello world~~hello~~world"
Run Code Online (Sandbox Code Playgroud)
我正在使用这样的拆分方法
String[] temp = myString.split("~|~~|~~~");
Run Code Online (Sandbox Code Playgroud)
我希望数组temp只包含由〜,~~或~~~分隔的字符串.
但是,这样创建的临时数组长度为5,另外2个"字符串"为空字符串.
我希望它只包含我的非空字符串.请帮忙.谢谢!
HTML页面背景图像应显示在固定位置,填满整个屏幕或窗口(在非平板电脑,非智能手机设备上).
使用ImageShack创建背景图像.到目前为止没有问题.
我创建了一个Plunk来演示当前的进展.
在非视网膜设备(戴尔笔记本电脑)上,图像似乎呈现正常,填满了整个页面背景.
在我的iPhone(视网膜)上,图像绝对不会显示为高分辨率图像.
此示例中使用的JavaScript代码如下:
function isRetina() {
return window.devicePixelRatio > 1;
}
$(document).ready(function() {
var url = "http://farm8.staticflickr.com/7398/11622056325_08e35bd803_o_d.jpg";
var b = $('body'), w = $(window), width = w.innerWidth(), height = w.innerHeight();
$('#retina').text('Is ' + (isRetina() ? '' : 'not') + ' retina.');
$('#size').text(width + " x " + height);
b.css('background-image'
, 'url(http://imagizer.imageshack.us/'
+ width
+ 'x'
+ height
+ 'f0/'
+ url
+ ')');
if (isRetina()) {
b.css('background-size', (width / 2) …Run Code Online (Sandbox Code Playgroud)