Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JSON数组响应转换为Java中的数组以在android中显示按钮_Java_Android_Arrays_Json - Fatal编程技术网

将JSON数组响应转换为Java中的数组以在android中显示按钮

将JSON数组响应转换为Java中的数组以在android中显示按钮,java,android,arrays,json,Java,Android,Arrays,Json,我的Web服务有以下JSON响应 {"error":"false","subjects":[{"subject":"1. Finance"},{"subject":"2. Eco"},{"subject":"3. Comm"},{"subject":"4. MGM"},{"subject":"5. Basic Computer Skills"},{"subject":"6. Buss Env"},{"subject":"7. Intro to finances"}]} 我只想选择返回的主题并

我的Web服务有以下JSON响应

{"error":"false","subjects":[{"subject":"1. Finance"},{"subject":"2. Eco"},{"subject":"3. Comm"},{"subject":"4. MGM"},{"subject":"5.  Basic Computer Skills"},{"subject":"6. Buss Env"},{"subject":"7. Intro to finances"}]}
我只想选择返回的主题并将其存储在数组中

然后,该数组将用于填充我在android活动中创建的按钮列表的文本,默认情况下,这些按钮的可见性设置为gone

在此方面的任何帮助都将不胜感激


谢谢

一个简单的方法是使用GSon库,它允许轻松解析JSON:

例如:

 public class Result {
    public boolean error;
    public ArrayList<Subject> subjects;
 }

 public class Subject {
    public String subject;
 }
公共类结果{
公共布尔错误;
公共ArrayList主题;
}
公共课科目{
公共字符串主题;
}
然后,在代码的其他地方:

Gson gson = new Gson();
Result result = gson.fromJson(yourJsonString, Result.class);
ArrayList<Subject> yourSubjects = result.subjects;
Gson-Gson=new-Gson();
Result-Result=gson.fromJson(yourJsonString,Result.class);
ArrayList yourSubjects=result.subjects;
请注意,Gson需要访问您的属性。避免使用公共的、更好定义的getter/setter。 更多关于Gson的信息,请点击此处:

举个例子:

{"error":"false","subjects":[{"subject":"1. Finance"},{"subject":"2. Eco"},{"subject":"3. Comm"},{"subject":"4. MGM"},{"subject":"5.  Basic Computer Skills"},{"subject":"6. Buss Env"},{"subject":"7. Intro to finances"}]}
您可以使用JSONArray执行此操作:

JSONObject myjson = new JSONObject(the_json_you_got);
JSONArray the_json_array = myjson.getJSONArray("subjects");
这将返回数组对象

然后可以像这样迭代:

int len = the_json_array.length();
ArrayList<JSONObject> arrays = new ArrayList<JSONObject>();
for (int i = 0; i < size; i++) {
    JSONObject another_json_object = the_json_array.getJSONObject(i);

    arrays.add(another_json_object);
}


JSONObject[] jsons = new JSONObject[arrays.size()];
arrays.toArray(jsons);
int len=_json_array.length();
ArrayList数组=新的ArrayList();
对于(int i=0;i
使用和:

JSONObject数据=新的JSONObject(jsonString);
JSONArray subjects=data.getJSONArray(“subjects”);
String[]subjectsArray=新字符串[subjects.length()];
for(int i=0;i
JSONObject data = new JSONObject(jsonString);
JSONArray subjects = data.getJSONArray("subjects");
String[] subjectsArray = new String[subjects.length()];
for(int i = 0; i < subjects.length(); i++){
     subjectsArray[i] = subjects.getString("subject");
}