2013-12-23 49 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; 
    }