2016-08-05 16 views
0

我想從假api調用中獲取json數據,並且需要獲取其中的項的數量(以便將來我可以調用實際的寧靜服務)。我無法獲得json中的部門數量。我期待在這裏的結果爲4(int)。獲取json文件的條目數

我不能讓下面的代碼字符串值(JSON):

String json = client.target("file:///C:/Program%20Files%20(x86)/apache-tomcat-8.0.35/webapps/GetProducts.json").request(MediaType.TEXT_PLAIN).get(String.class); 

請發現整個代碼如下:

String json = client.target("file:///C:/Program%20Files%20(x86)/apache-tomcat-8.0.35/webapps/GetProducts.json").request(MediaType.TEXT_PLAIN).get(String.class); 

JSONObject jsnobject = new JSONObject(json); 

JSONArray jsonArray = jsnobject.getJSONArray("locations"); 
for (int i = 0; i < jsonArray.length(); i++) { 
    JSONObject explrObject = jsonArray.getJSONObject(i); 
} 

JSON示例:

{ 
"Department": 
[ 
    {"SectionId":"1","SectionName":"Childrens Wear"}, 
    {"SectionId":"2","SectionName":"Womens Wear"}, 
    {"SectionId":"3","SectionName":"F&A"}, 
    {"SectionId":"1","SectionName":"Mens Wear"} 
] 
} 

我是新來的java以及api的。

感謝,

+1

''地點''對''部門'' –

+0

請解決您在您的問題中的實際問題。不要提出一個問題,然後回答*然後*在評論中問你真正的問題。 –

+0

您無法獲取字符串值,因爲您的JSON的路徑在空格('''')應該位於的地方有'%20'。 '「file:/// C:/ Program%20Files%20(x86)/apache-tomcat-8.0.35/webapps/GetProducts.json」'應該是'「file:/// C:/ Program Files(x86 )/apache-tomcat-8.0.35/webapps/GetProducts.json「' –

回答

1

您可能是使用不正確的密鑰代碼或您發佈不正確JSON的例子。您使用locations作爲密鑰incode,但是在示例JSON中沒有針對該密鑰的值。您需要使用Department作爲關鍵。

JSONArray jsonArray = jsnobject.getJSONArray("Department"); 
+0

嗨Harshil,那是我的不好。它實際上是代碼中的「部門」。我沒有得到代碼的輸出:client.target(「file:/// C:/ Program%20Files%20(x86)/apache-tomcat-8.0.35/webapps/GetProducts.json」).request(MediaType .TEXT_PLAIN)獲得(String.class); – Emraan

+1

請更新問題以包含更正和實際結果。 –