如何从JSON文件中获取相对值?

时间:2017-01-05 21:42:36

标签: java json get postman

我正在尝试从以下JSON文件中获取名称为 Item2 的项目的 testId

Debian

这个JSON是我在postman上运行的GET请求的响应。

我可以获取此JSON中任何键的值,但我无法添加相关条件,如 获取名称为Item6的项的testID。

我正在使用数组列表来获取所有元素的testID值,这对我来说很好。我可以在下面做任何改变来实现我想要的吗?

dist-packages

PS:getTokenValue(String,String)是我创建的用于获取值的函数,它可以正常工作。

2 个答案:

答案 0 :(得分:0)

您可以使用适用于Java的JSON解析器。这是其中一个How to parse JSON in Java。从JSON数组中检索值时,可以进行简单的字符串比较以检查条件。希望有所帮助。

答案 1 :(得分:0)

我知道了!感谢@Castor提示。 以下为我工作:

responseJson 是我从GET请求获得的JSON文件。

protected int getIdFromArrayOfCollectionItems(String responseJson) throws JSONException{
    int collectionId=0;
    JSONObject root = new JSONObject(responseJson).getJSONObject("data");
    JSONArray collectionArray = root.getJSONArray("collections");
    for(int i =0 ;i<collectionArray.length();i++){
        JSONObject collectionObject = collectionArray.getJSONObject(i);
        String name = collectionObject.getString("name"); 
        if(name.equalsIgnoreCase("Item2")){
            collectionId = collectionObject.getInt("collectionId"); 
            System.out.println("collection ID::"+collectionId);
        }
    }
    return collectionId;

}

当然我会将Item name作为参数传递给更多动态行为,但它可以工作:)