2015-08-14 60 views
0

我正在學習如何在Java中使用JSON,並且我的一個密鑰使用getString時遇到問題。我的代碼是在這裏:getString不適用於JSON密鑰

public static void getJSON(String matchID){ 
    String s = ""; 
    String test = "{\"employees\":[{\"firstName\":\"John\", \"lastName\":\"Doe\"}]}"; 


    try { 
     JSONObject hi = new JSONObject(test); 
     JSONArray stuff = hi.getJSONArray("employees"); 
     String[] items = new String[stuff.length()]; 
     items[0] = stuff.getString("firstName"); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 

的「的getString」是強調了紅色,「該方法的getString(INT)在類型JSONArray是不適用的參數(字符串)」我下面的答案,另一個疑問詞幾乎,這發生,有什麼建議?謝謝! 編輯: 我需要得到的名稱即細節。 「firstName」是因爲我將與數以千計的各有數百行的JSON合作。

+0

你知道[JSON數組](http://json.org/)是什麼嗎? –

回答

0

解析所以我想出了我的問題,我沒有意識到我有一個JSONObject,我的道歉。像這樣修復:

JSONObject hi = new JSONObject(test); 
JSONArray stuff = hi.getJSONArray("employees");   
JSONObject name = stuff.getJSONObject(0); 
String[] items = new String[hi.length()]; 
items[0]=name.getString("firstName"); 
System.out.println(items[0]); 
0

您需要首先從JSONArray(stuff)中獲取JSOnObject,然後才能調用getString()。

,如果你想獲得的第一個元素在jsonarray並獲得它的字符串這是你會怎麼做

JsonObject obj = stuff.getJsonObject(0); 
String name = obj.getString("firstname"); 
+0

我想按名稱獲取對象。即。 「firstName」,因爲我將使用成千上萬行的數千行JSON。 – Twtheo

-1

你可以試試最簡單的方法以JSON

JSONParser parser=new JSONParser(); 
String s = "{\"employees\":[{\"firstName\":\"John\", \"lastName\":\"Doe\"}]}"; 
try{ 
    Object obj = parser.parse(s); 
    JSONArray array = (JSONArray)obj; 
    System.out.println(array.get(1)); 
}catch(ParseException pe){ 
}