2011-12-15 131 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)); 
相关问题