Java 如何在Android中迭代JSON数据

Java 如何在Android中迭代JSON数据,java,android,json,togglebutton,Java,Android,Json,Togglebutton,上面这是我的JSON字符串(编辑得更短,因为它在这里变得太长了) 我正试图找到一种方法来迭代每个组,并用它们创建一个切换按钮 所以我要做的是创建一个名为“omrid”的开关按钮,开关状态为“status”。“grupp”最终用于将开关分组,但现在并不重要 我搜索了又搜索,似乎没有人有我特定的JSON字符串组成,我对JSON/Android SDK有点不了解。我会使用JSONObject。在Android或PC上运行没有区别 { "gb": [ { "omrid": "gi

上面这是我的JSON字符串(编辑得更短,因为它在这里变得太长了)

我正试图找到一种方法来迭代每个组,并用它们创建一个切换按钮

所以我要做的是创建一个名为“omrid”的开关按钮,开关状态为“status”。“grupp”最终用于将开关分组,但现在并不重要


我搜索了又搜索,似乎没有人有我特定的JSON字符串组成,我对JSON/Android SDK有点不了解。

我会使用
JSONObject
。在Android或PC上运行没有区别

{   "gb": [
    {
      "omrid": "gis-n",
      "status": 0,
      "grupp": 1
    },
    {
      "omrid": "gis-s",
      "status": 0,
      "grupp": 1
    },
    {
      "omrid": "gis-c",
      "status": 0,
      "grupp": 1
    },
    {
      "omrid": "gis-h",
      "status": 0,
      "grupp": 1
    },
    {
      "omrid": "gis-g",
      "status": 0,
      "grupp": 1
    },
    {
      "omrid": "hes",
      "status": 0,
      "grupp": 2
    }   ] }
这是密码

status=0; grupp=1; omrid=gis-n
status=0; grupp=1; omrid=gis-s
status=0; grupp=1; omrid=gis-c
status=0; grupp=1; omrid=gis-h
status=0; grupp=1; omrid=gis-g
status=0; grupp=2; omrid=hes
JSONObject json=新的JSONObject(字符串您的_json_字符串);
JSONArray arr=json.getJSONArray(“gb”);

对于(inti=0;i使用以下代码进行迭代

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONObject;

public class JSONParser {

    public JSONParser() {

    }

    JSONObject jObj;
    String json;
    InputStream is = null;

    public JSONObject getJsonFromUrl(String url) {
        // TODO Auto-generated method stub

        try {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();

            is = httpEntity.getContent();
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;

            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();

            System.out.println("Json String : " + json);
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            jObj = new JSONObject(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jObj;
    }
}
制作一个类JSONParser,如下所示

JSONObject json = new JSONObject(String your_json_string);
JSONArray arr = json.getJSONArray("gb");
for(int i = 0;i<arr.length();i++)
{
JSONObject temp = arr.getJSONObject(i);
temp.getString("omrid");//use them as your needs
temp.getString("status");//use them as your needs
temp.getString("grupp");//   use them as your needs
}
在MainActivity中,使用以下命令进行迭代

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONObject;

public class JSONParser {

    public JSONParser() {

    }

    JSONObject jObj;
    String json;
    InputStream is = null;

    public JSONObject getJsonFromUrl(String url) {
        // TODO Auto-generated method stub

        try {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();

            is = httpEntity.getContent();
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;

            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();

            System.out.println("Json String : " + json);
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            jObj = new JSONObject(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jObj;
    }
}
JSONParser=newjsonparser();
JSONObject o=parser.getJsonFromUrl(“yourjsonurl”);
JSONArray数组=o.getJSONArray(“gb”);
对于(int i=0;i
是的,谢谢!我正在运行大量测试,一分钟前就找到了这个解决方案,你击败了我;)@Waqas StackOverflow是一个国际网站。请用英语而不是瑞典语写评论:)Waqas所说的翻译:阅读更多关于Json Det gör jag的信息。只是看到一些瑞典人有点太激动了:)
JSONParser parser = new JSONParser();
JSONObject o = parser.getJsonFromUrl("yourjsonurl");

JSONArray array = o.getJSONArray("gb");

for (int i = 0; i < array.length(); i++){
    JSONObject j = array.getJSONObject(i);

    String omrid = j.getString("omrid");
    String status= j.getString("status");
    String grupp = j.getString("grupp");
}