如何搜索存储在json结构中的匹配对?

时间:2019-03-27 13:01:48

标签: json javafx hashmap

我需要搜索存储在json中的匹配对;当用户在文本字段中输入一些键文本并从组合框中选择值时;

我已经尝试过,但是它仅对单对返回true,对其他所有对返回false;即使是简单的print语句也可以完美地存储在json中的所有配对,但是搜索特定匹配项不起作用

这是javafx代码的片段:

Map<String, String> Relationships= returnRelationships();
    Relationships.forEach((key,value)->{comboBox.setOnAction(event2->
    {
    if(key.equals(txtField.getText())&&value.equals(comboBox.getSelectionModel().getSelectedItem()));

    System.out.println("Match Found");
    else
    System.out.println("No-Match Found");
    }); 
    });

returnRelationships()的代码基本上从json文件中获取数据:

static Map<String,String> mapRelations = new HashMap<>();
   static Map.Entry pairRelation=null;
   public static Map<String, String> returnRelationships() throws FileNotFoundException, IOException, ParseException
    {   
Object obj = new JSONParser().parse(new FileReader(FILE_NAME4));
JSONObject jsonObject = (JSONObject) obj; 
Map map = ((Map) jsonObject.get("Products")); 
Iterator<Map.Entry> itr = map.entrySet().iterator(); 
while (itr.hasNext())  
            {   
    pairRelation=  itr.next();
mapRelations.put(pairRelation.getKey().toString(),pairRelation.getValue().toString());
    }
        return mapRelations;
}

json条目为:

{"Products": {"p10":"SamsungS5","i6":"Iphone6","i6s":"Iphone6S","ix":"Iphonex"}
}

只要文本字段和组合框中的任何一对匹配,我都需要它返回“找到匹配项”

0 个答案:

没有答案