簡體   English   中英

從JSONArray檢索數組並將該數組設置為類變量

[英]Retrieving an array from a JSONArray and setting the array to a class variable

放棄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()];
    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

這是User類:

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];
     }
}

當我嘗試打印User的內容時,所有期望值都在那里,除了數組本身。 謝謝。

我看不到您的代碼中有任何重大缺陷,因此我將提供一些一般性建議...

在代碼中設置一些斷點,然后進入調試模式,以便可以確定問題的范圍。 在將myArray傳遞給用戶類之前,是否將其所有元素設置了? 如果不是,請退后一步,確保已解析JSON數組並將值正確傳遞給您。

我要更改的另一件事是,用於User構造函數的參數具有與內部字段相同的名稱。 您使用了'this'變量很好,但是您仍然想更改該參數名稱以避免任何可能的混淆,您可能正在將變量分配給它自己。

設置斷點並逐步執行程序,您應該能夠准確地確定問題最初發生的位置,然后將更容易解決。

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM