所以我正在研究下面的json:
{
"id": "",
"owner": "some dude",
"metaData": {
"request": {
"ref": null,
"contacts":[
{
"email": null,
"name": null,
"contactType": "R"
},
{
"email": null,
"name": "Dante",
"contactType": "S"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想检索name
联系人的类型S
,只检索返回的第一个.
在此路径中使用jsonpath "$..contacts[?(@.contactType == 'S')].name"
始终返回一个字符串数组,因为过滤器操作始终将结果作为数组返回.
所以,我想"$..contacts[?(@.contactType == 'S')].name[0]"
和"$..contacts[?(@.contactType == 'S')][0].name"
,但没有运气.那些路径返回空结果.
所以我的问题是,在jsonpath中使用过滤器时,有没有办法获得第一个元素.我目前正在使用jayway jsonpath v2.2.0.
StringIndexOutOfBoundsException
如果用户将制表符粘贴到一个标签中,则JavaFX应用程序线程会抛出一个TextField
.如何巧妙地防止用户以这种方式破坏我的应用程序?
这是演示行为的最小示例.
//Defined in Main.java
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
AnchorPane root = (AnchorPane) FXMLLoader
.load(getClass().getResource("MainView.fxml"));
primaryStage.setScene(new Scene(root));
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
在MainView.fxml中定义:
<AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<TextField fx:id="tf" />
</children>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)
程序:
\t
\n)复制到剪贴板TextField
TextField
无论用户是使用键盘快捷键(Windows中为Ctrl + V)还是上下文菜单,都会发生异常.我当然可以为每个人添加一个try-catch块TextField
,但这会使代码混乱,我怎么知道这个异常只会在这种情况下抛出?
注意:这个问题似乎没有影响TextArea
例外全文:
Exception in thread "JavaFX …
Run Code Online (Sandbox Code Playgroud)在创建对象后它有一个类主体及其有用的内容时,它会调用什么?
例:
public MyObject myObject = new MyObject() /*from here*/{
void myMethod() {
//code
}
};/*to here*/
Run Code Online (Sandbox Code Playgroud)
因为通常它看起来像这样:
public MyObject myObject = new MyObject();
Run Code Online (Sandbox Code Playgroud) 我升级到Java 1.8.现在,当我尝试在Eclipse中运行我的项目时,我收到此错误.
无法找到jre1.8.0_65的可执行文件
我用Google搜索并找到了答案,我跟着他.它建议我重新添加Java VM,但它遗漏了重要的细节:我不知道我正在寻找的罐子的名称,所以我迷路了.我需要做什么?
我正在运行Windows 10和eclipse-java-mars-1-win32-x86_64.