Java 从JSONArray检索数组并将数组设置为类变量
在放弃gson之后,我遇到了一个似乎很小的问题,但我似乎无法确定问题所在。我只是尝试从JSONArray获取一个整数数组,并将该整数数组保存到一个类变量中Java 从JSONArray检索数组并将数组设置为类变量,java,android,arrays,Java,Android,Arrays,在放弃gson之后,我遇到了一个似乎很小的问题,但我似乎无法确定问题所在。我只是尝试从JSONArray获取一个整数数组,并将该整数数组保存到一个类变量中 int length = myArray.length(); if(length>0){ for(int j=0; j<length; j++){ JSONArray test = myArray.getJSONArray(j); myArray = new int[test.length()];
int length = myArray.length();
if(length>0){
for(int j=0; j<length; j++){
JSONArray test = myArray.getJSONArray(j);
myArray = new int[test.length()];
for(int k=0; k<test.length(); k++) {
myArray[k] = test.getInt(k);
}
}
// However, when I add myArray to the User constructor, the values don't "stick"
// ie,
User user = new User(x, y, z, myArray);
// At this point, myArray doesn't contain its values after I try to access them fromthe
// User class
int length=myArray.length();
如果(长度>0){
对于(int j=0;j我没有看到您的代码中有任何大的缺陷,因此我将提供一些一般性建议
在代码中设置一些断点并进入调试模式,以便确定问题的范围。在将myArray传递给用户类之前,myArray是否设置了所有元素?如果没有,请后退一步,确保正在解析JSON数组并正确传递值
我要更改的另一件事是,用户构造函数的参数与内部字段的名称相同。您使用了“this”变量,这很好,但您仍然希望更改该参数名称以避免任何可能的混淆,您可能正在将该变量分配给自身
设置断点并逐步完成您的程序,您应该能够准确地确定问题首先发生的位置,然后将更容易解决
祝你好运!谢谢你的建议。我能够听从你的建议,但我仍然没有发现问题所在。最终,我用ArrayList对象替换了原始数组类型,这实际上使它们更易于调试。
public User(String x, String y, int z, int[] myArray){
this.x = x;
this.y = y;
this.z = z;
for(int i=0; i<myArray.length; i++){
Log.v(LOG_TAG, "User: myArray [" + i + "] = " + myArray[i]);
this.myArray[i] = myArray[i];
}
}