2011-12-15 130 views
4

編輯:我實際上找到了答案。因爲我是新手,我無法解決這個問題。我能夠使用Array.getString(i)返回所需的字符串值。感謝所有的幫助。從Java中的JSON數組對象獲取字符串值

我有JSON是這樣的:

{ 
    "List": [ 
    "example1", 
    "example2", 
    "example3", 
    "example4" 
    ] 
} 

,我試圖讓這些對象的字符串值,而無需使用鑰匙。我怎樣才能做到這一點?對於jsonObject的getString()需要一個密鑰,我沒有一個。

回答

7

我假設你有一個文件:/home/user/file_001.json

文件包含此:`

{"age":34,"name":"myName","messages":["msg 1","msg 2","msg 3"]} 

現在讓我們編寫一個讀取文件的程序:/home/user/file_001.json 並將其內容轉換爲java JSONObject

package org.xml.json; 

import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.Iterator; 

import org.json.simple.JSONArray; 
import org.json.simple.JSONObject; 
import org.json.simple.parser.JSONParser; 
import org.json.simple.parser.ParseException; 


    public class JsonSimpleRead 
    { 
     @SuppressWarnings("unchecked") 
     public static void main(String[] args) 
     { 
      JSONParser parser = new JSONParser(); 
      try 
      { 
       Object obj = parser.parse(new FileReader("/home/user/file_001.json")); 
       JSONObject jsonObject = (JSONObject) obj; 
       String name = (String) jsonObject.get("name"); 
       System.out.println(name); 

       long age = (Long) jsonObject.get("age"); 
       System.out.println(age); 

       JSONArray msg = (JSONArray) jsonObject.get("messages"); 
       Iterator<String> iterator = msg.iterator(); 
       while (iterator.hasNext()) 
       { 
        System.out.println(iterator.next()); 
       } 
      } 
      catch (FileNotFoundException e) 
      { 
       e.printStackTrace(); 
      } 
      catch (IOException e) 
      { 
       e.printStackTrace(); 
      } 
      catch (ParseException e) 
      { 
       e.printStackTrace(); 
      } 
     } 
    } 
0

「目錄」是你的關鍵,因爲這是最外面的JSON對象的屬性:

JSONObject json = new JSONObject(jsonString); 
JSONArray array = json.getArray("List"); 
+0

我能到陣就好了。問題是當我得到數組,並必須打印array.getJSONObject(i);.我怎樣才能不用鑰匙呢?通常我可以通過使用jsonObject.getString(「KEY」)來完成,但我沒有在這裏。 – Ammar 2011-12-15 04:26:17

0

另一種解決方案:

import org.json.JSONArray; 
import org.json.JSONObject; 

// example json 
String list = "{\"List\": [\"example1\", \"example2\", \"example3\", \"example4\"]}"; 

// to parse the keys & values of our list, we must turn our list into 
// a json object. 
JSONObject jsonObj = new JSONObject(list); 

// isolate our list values by our key name (List) 
String listValues = jsonObj.getString("List"); 

// turn our string of list values into a json array (to be parsed) 
JSONArray listItems = new JSONArray(listValues); 

// now we can print individual values using the getString and 
// the index of the desired value (zero indexed) 
Log.d("TAG", listItems.getString(2)); 
相關問題