Android获取没有名称的JSON数组

时间:2016-07-30 17:24:51

标签: android

我从我的API获得了以下JSON数据:

enter image description here

Json数组和其中的很多json对象。

如何获取没有名称的json数组?

这就是我的尝试:

//Parsing the fetched Json String to JSON Object
 j = new JSONObject(response);
result = j.getJSONArray('');
 for(int i=0;i<j.length();i++){
            try {
                //Getting json object
                JSONObject json = j.getJSONObject(i);
                Log.d("tag", "NAME IS: " +json.getString("name"));
}
}

json变量存储所有json数据!

2 个答案:

答案 0 :(得分:2)

JSONArray有一个构造函数,它接受一个String源。

JSONArray array = new JSONArray(yourJSONArrayAsString);

然后你可以使用for循环来获取每个对象。

JSONArray array;
    try {
        array = new JSONArray(yourJSONArrayAsString);

        for(int i=0;i<array.length();i++){
            JSONObject obj = array.getJSONObject(i);
            // get your data from jsonobject
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

答案 1 :(得分:-1)

创建包含json解析代码的JSONParser类。

在您的MainActivity.java中提及

JSONParser jsonparser = new JSONParser(); JSONObject jsonObject = jsonparser.getJSONFromURL(URL);

现在创建单独的JSONParser类

class JSONParser
{
   public static JSONObject jsonObject=null;
   public static String json=null;
   InputStream is=null;
   public JSONObject getJSONFromURL(String url)
{ 
    try
{
      HttpClient client=new DefaultHttpClient();
      HttpPost post=new HttpPost(url);
      HttpResponse response=client.execute(post);
      HttpEntity entity=response.getEntity();
      is=entity.getContent();
}
catch(Exception e)
{
  e.printStackTrace();
}
try
{
  BufferedReader br=new BufferedReader(new InputStreamReader(is,"UTF-8"));
  StringBuilder sb=-new StringBuilder();
  String line=null;
  while((br.readLine())!=null)
  {
    sb.append(line+"\n");
  }
 json=sb.toString();
 is.close();
}
catch(Exception e)
{
   e.printStackTrace();
}
 try
{
  jsonObject=new JSONObject(json.subString(json.indexOf("{"),json.lastinddexOf("}")+1));
}
catch(Exception e)
{
   e.printStackTrace();
}
return jsonObject;
}

现在在MainActivity.java

try
{
JSONParser jsonparser=new JSONParser();
JSONObject jsonObject=jsonparser.getJSONFromURL(URL);// URL is a String which contains url
Log.d("Response:",jsonObject.toString());
JSONArray jsonarray=new JSONArray(jsonObject.getString("YourFirstJSONArrayName"));//YourJSONArray contains the response array
for(int i=0;i<jsonarray.length();i++)
 {
   JSONObject c=jsonarray.getJSONObject(i);
   // now get data from c object
 }
// Now getting data from Second Array
 JSONArray jsona=new JSONArray(jsonObject.getString("YourSecondJSONArrayName"));
   for(int j=0;j<jsona.length();j++)
{
    JSONObject c=jsona.getJSONObject(j);
      // now get data from json data from second array
}
 }
catch(Exception e)
{
  e.printStackTrace();
}