我有一个JSON对象
"methodSet":[{"num":1,"methodName":1,"methodStatus":1},
{"num":2,"methodName":2,"methodStatus":1}]
我需要将methodName和methodStatus放入MethodClass数组中。
根据下面的代码,我总是获得MethodClass [2] [1]的最后一个值。我想要的预期结果是[1] [1],[2] [1]。我可以知道如何为methodSet累积值吗?我可以使用什么方法来附加2D数组?
JSONArray arr=(JSONArray)obj.get("methodSet");
int lengtharr = arr.length();
if (arr != null) {
JSONObject objMethod1;
String MethodName, MethodStatus;
for (Object o1 : arr) {
objMethod1 = (JSONObject) o1;
MethodName = String.valueOf(objMethod1.get("methodName"));
MethodStatus = String.valueOf(objMethod1.get("methodStatus"));
int resultMethodName = Integer.parseInt(MethodName);
int resultMethodStatus = Integer.parseInt(MethodStatus);
for (int j = 0; j < lengtharr; j++) {
methodSetFinal[i][j] = new MethodClass();
methodSetFinal[i][j].setmethodName(resultMethodName);
methodSetFinal[i][j].setmethodStatus(resultMethodStatus);
methodSet [i][j] = methodSetFinal [i][j];
}
}
}
MethodClass代码:
public class MethodClass {
private int methodName;
private int methodStatus;
public MethodClass() {
methodName = 0;
methodStatus = 0;
}
public int getmethodName() {
return methodName;
}
public int getmethodStatus() {
return methodStatus;
}
public void setmethodName(int i) {
this.methodName = i;
}
public void setmethodStatus(int status) {
this.methodStatus = status;
}
}
答案 0 :(得分:1)
您不需要2D数组,一个简单的数组就足够了,一个for
循环就足够了
JSONArray arr=(JSONArray)obj.get("methodSet");
if (arr != null) {
int lengtharr = arr.length();
MethodClass[] methodSetFinal = new MethodClass[lengtharr];
JSONObject objMethod1;
String MethodName, MethodStatus;
int index = 0;
for (Object o1 : arr) {
objMethod1 = (JSONObject) o1;
MethodName = String.valueOf(objMethod1.get("methodName"));
MethodStatus = String.valueOf(objMethod1.get("methodStatus"));
int resultMethodName = Integer.parseInt(MethodName);
int resultMethodStatus = Integer.parseInt(MethodStatus);
MethodClass methodClass = new MethodClass();
//A constructor in your model class that takes two parameters would have been nice
methodClass.setmethodName(resultMethodName);
methodClass.setmethodStatus(resultMethodStatus);
methodSetFinal[index] = methodClass;
index++;
}
}
我没有检查您的json相关代码,只是假设它是正确的。