小编Aus*_*n D的帖子

在jsonpath中过滤时如何获取第一个元素?

所以我正在研究下面的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.

java jsonpath

9
推荐指数
1
解决办法
3554
查看次数

将Tab字符粘贴到TextField时断开JavaFX

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)

程序:

  1. 将制表符(\t\n)复制到剪贴板
  2. 输入内容 TextField
  3. 突出显示中的文本 TextField
  4. 粘贴剪贴板的内容以替换突出显示的文本

无论用户是使用键盘快捷键(Windows中为Ctrl + V)还是上下文菜单,都会发生异常.我当然可以为每个人添加一个try-catch块TextField,但这会使代码混乱,我怎么知道这个异常只会在这种情况下抛出?

注意:这个问题似乎没有影响TextArea

例外全文:

Exception in thread "JavaFX …
Run Code Online (Sandbox Code Playgroud)

java javafx exception textfield

5
推荐指数
1
解决办法
522
查看次数

在实例化时,您将其称为定义其方法/字段的对象是什么?

在创建对象后它有一个类主体及其有用的内容时,它会调用什么?

例:

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 anonymous

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

更新Java后Eclipse无法运行

我升级到Java 1.8.现在,当我尝试在Eclipse中运行我的项目时,我收到此错误.

无法找到jre1.8.0_65的可执行文件

我用Google搜索并找到了答案,我跟着他.它建议我重新添加Java VM,但它遗漏了重要的细节:我不知道我正在寻找的罐子的名称,所以我迷路了.我需要做什么?

我正在运行Windows 10和eclipse-java-mars-1-win32-x86_64.

java eclipse

-3
推荐指数
1
解决办法
2025
查看次数

标签 统计

java ×4

anonymous ×1

eclipse ×1

exception ×1

javafx ×1

jsonpath ×1

textfield ×1