2013-12-23 38 views
0

我可以將字節流轉換爲其JSON表示。這是一個JSONArray。我希望將它轉換爲Vector中的bb_test對象。我怎麼做?將JSONArray轉換爲BlackBerry上的向量

我用JSON http://codeoncloud.blogspot.com/2013/05/blackberry-java-json-tutorial.html的這個例子

我從服務器獲取數據是這樣的:

[ 
    { 
     "settingName": "New", 
     "onclick": "CreateNewDoc()" 
    }, 
    { 
     "settingName": "Open", 
     "settingValue": "OpenDoc()" 
    }, 
    { 
     "settingName": "Close", 
     "settingValue": "CloseDoc()" 
    } 
] 

所以我創造這樣的

package mypackage; 

public class bb_test { 
    String settingName; 
    /** 
    * 
    */ 
    String settingValue; 
    public String getSettingName() { 
     return settingName; 
    } 
    public void setSettingName(String settingName) { 
     this.settingName = settingName; 
    } 
    public String getSettingValue() { 
     return settingValue; 
    } 
    public void setSettingValue(String settingValue) { 
     this.settingValue = settingValue; 
    } 

} 

回答

0

首先的一類,將這些參數存儲在兩個字符串數組中,分別名爲settingNameArraysettingValueArray是JSON數據。這樣

一些假設你的整個JSON在以下陣列接收,然後

JSONArray arr=new JSONArray(jsonData); 
int size=arr.length(); 
String[] settingNameArray=new String[size]; 
String[] settingValueArray=new String[size]; 
JSONObject[] obj=new JSONObject[size]; 
for(int i=0;i<size;i++) 
{ 
    settingNameArray[i]=arr.getJSONObject(i).getString("settingName"); 
    settingValueArray[i]=arr.getJSONObject(i).getString("settingValue"); 
} 

bb_test.setSettingValue(settingValueArray); 
bb_test.setSettingName(settingNameArray); 

之後,改變bb_test類結構保存這些值。它看起來像這樣

public class bb_test { 
    String settingName[]; 
    String settingValue[]; 
    public bb_test() 
    { 
    } 
    public String[] getSettingName() { 
     return settingName; 
    } 
    public void setSettingName(String[] settingName) { 
     this.settingName = settingName; 
    } 
    public String[] getSettingValue() { 
     return settingValue; 
    } 
    public void setSettingValue(String[] settingValue) { 
     this.settingValue = settingValue; 
    } 
} 
+0

看起來他想要一個'bb_test'對象來表示一對設置和值。不是一對*數組*。 – Nate

0

你的bb_test類很好,不需要改變它,除了命名約定。你可以從這樣的數據中得到一個數組:

Vector bb_testVector = new Vector(); 
JSONArray jsonArray = new JSONArray(jsonData); 
int size = jsonArray.length(); 

    for(int i=0;i<size;i++) 
    { 
     JSONObject tempJSON = jsonArray.getJSONObject(i); 

     String settingName = tempJSON.getString("settingName"); 
     String settingValue = tempJSON.getString("settingValue"); 

     bb_test newBBTest = new bb_test(); 
     newBBTest.setSettingName(settingName); 
     newBBTest.setSettingValue(settingValue); 

     bb_testVector.addElement(newBBTest); 

     //clean memory 
     tempJSON = null; 
     newBBTest = null; 
     settingName = null; 
     settingValue = null; 
    }