在JSON数组中获取特定值(Java)

时间:2016-02-12 04:41:13

标签: java arrays json jsonobject

我试图在JSON文件中获取特定属性的值,但我得到了数组的行内容。

例如,我的JSON文件:

{
  "head": {
    "vars": [ "type1" , "pred" , "type2" ]
  } ,
  "results": {
    "bindings": [
      {
        "type1": { "type": "Collection" } ,
        "type2": { "type": "has" } ,
        "type3": { "type": "contributor" }
      } ,
      {
        "type1": { "type": "Collection2" } ,
        "type2": { "type": "has2" } ,
        "type3": { "type": "contributor2" }
      } 

]
}
}

我想只得到属性" type3"的值。 但是我的下面的代码让我得到了所有这些代码。

JSONObject obj =  new JSONObject(json);      
JSONObject results = obj.getJSONObject("results");
JSONArray bindings = results.getJSONArray("bindings");       

for (int i=0; i<bindings.length(); i++)
{
JSONObject x = bindings.getJSONObject(i);                
x.getJSONObject("type3");  
}

我尝试了几种方法,但似乎我做错了。

2 个答案:

答案 0 :(得分:2)

  

我只想得到这个:{&#34; type&#34;:&#34;贡献者&#34; }

然后得到那个值(大致)就像这样

bindings.getJSONObject(0).getJSONObject("type3")

答案 1 :(得分:2)

您可以使用JsonPath.read将所有Type3值作为列表。

列表值= JsonPath.read(绑定,&#34; .. type3&#34;);