2012-05-09 49 views
0

我一直在使用VFP 8.0很長一段時間,我最喜歡的一件事情是宏功能;適用於Android的JAVA宏使用(這樣做是否存在?)

name = "Paul James" 
age = 25 
result = My name is &name, I am &age years old. 

我也能做到,

dimension x[5]; 
x[0] = "box" 
x[1] = "area" 
text.&x[0]..text = "textbox" ---> textbox.text="textbox" 
text.&x[1]..text = "textarea" ---> textarea.text="textarea" 

與FoxPro的一件事情是,我似乎已經長大連接到它,我一定斜度希望與OOS語言如Java這樣的存在(或者它確實,我只是錯過了一些額外的研究?),無論如何,我想有這樣的事情,這是我的問題;

我有一個JSON數組,我通過使用android代碼工廠中提供的「names()」方法獲取響應的所有名稱並將其存儲在臨時數組中。

確切地說,我想爲從該方法創建的臨時數組中的每個名稱創建一個數組;

舉例說明;

JSONArray response = 
[{"name":"a","middlename":"aa","surname":"aaa"},{"name":"b","middlename":"bb","surname":"bbb"},{"name":"c","middlename":"cc","surname":"ccc"}] 

temp[] = [{name,middlename,surname}]; 

所需的輸出:

String[] name = new String[response.firstobject.length]; 
String[] middlename = new String[response.firstobject.length]; 
String[] surname = new String[response.firstobject.length]; 

這裏是我的實際代碼; JSON解析器

@SuppressWarnings("null") 
public ArrayList<String> parseJson(JSONArray ja) throws JSONException{ 
    ArrayList<String> listItems = new ArrayList<String>(); 
    String[] temp = null;  
    //Get all the fields first 
    for (int i=0; i<=0; ++i){ 
     JSONObject jo = ja.getJSONObject(i); 
     if(jo.length()>0){ 
      temp = new String[jo.names().length()]; 
      for(int x=0; x<jo.names().length(); ++x){ 
       temp[x] = jo.names().getString(x); 
      } 
     } 
    } 
    } 

所以我有點卡在期望的輸出,這是可能的第一個地方?爲什麼我這樣做,是因爲我想創建一個通用的JSON響應方法;這樣我就不必記住所有使用它們的響應名稱。即時通訊尋找一個Java/Android解決方案(最有可能與Android的工作)。

在此先感謝!

回答

2

我不一定會嘗試複製,你可以在Visual FoxPro中做什麼,因爲它通常是在該語言是一個好主意,以避免宏替換,除非你絕對使用它,你可以不使用名稱表達。

這裏是一個名稱表達式的例子:

STORE 'city' TO cVarCity 
REPLACE (cVarCity) WITH 'Paris' 

這是快得多尤其是在環路。

在Java方面,您可能正在使用Reflection API。

+0

「你可以不使用名稱substition代替」,聽起來有點混亂,請糾正我的理解,我可以或者我可以使用名稱替換? –

+0

查看編輯答案。 –

+0

但是,名稱表達式不能滿足我的目標,我目前正在深入瞭解您指出的Reflection,但是,對於我當前的java + android知識來說,它似乎是前進的,我正在失去希望並可能最終以懶惰的東西「硬編碼」,不幸的是,這將破壞任何面向對象的概念,當涉及到可重用性和靈活性。 –

0

我也使用vfp,我有一些例程。也許這些功能爲您服務STRTRAN,CHRTRAN:

//--------- ejemplos : 
// STRTRAN("Hola * mundo","*", "//") ==> "Hola // mundo" 
public String STRTRAN(String cExpression, String cFindString, String cReplacement){   
    return cExpression.replace(cFindString, cReplacement); 
} 

//------------------ ejemplos: 
// miToolkit.CHRTRAN("ABCDEF", "ACE", "XYZ"); // muestra XBYDZF. ok 
// miToolkit.CHRTRAN("ABCDEF", "ACE", "XYZQRST"); // muestra XBYDZF. ok 
// miToolkit.CHRTRAN("ABCD", "ABC", "YZ"); // muestra YZCD. No es como fox 
public String CHRTRAN(String cString, String cFindChars, String cNewChars){ 
    String cResult = cString;  
    char[] aFindChars; 
    char[] aNewChars; 
    int nLength = cFindChars.length(); 

    aFindChars = cFindChars.toCharArray(); 
    aNewChars = cNewChars.toCharArray(); 
    if(cNewChars.length() < nLength){ 
     nLength = cNewChars.length() ; 
    } 
    for(int i=0; i < nLength; i++){ 
     cResult = cResult.replace(aFindChars[i], aNewChars[i]); 
    } 
    return cResult; 
} 

Saludos, 塞薩爾·戈麥斯, 利馬,祕魯

相關問題