我使用VFP 8.0已经有一段时间了,我最喜欢它的一个地方就是它的宏功能;
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的事情,我似乎已经开始依恋它,并且有点倾向于希望像Java这样的面向对象语言也存在这样的东西(或者它真的存在,我只是缺少一些额外的研究?),不管怎么说,我想要有这样的东西,这就是我的问题;
我有一个JSON Array,通过使用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一起工作的那个)。
提前感谢!
发布于 2012-05-09 17:13:19
我不一定要尝试在Visual FoxPro中复制您可以做的事情,因为在该语言中避免宏替换通常是一个好主意,除非您绝对必须使用它,并且您不能使用名称表达式。
下面是一个名称表达式的示例:
STORE 'city' TO cVarCity
REPLACE (cVarCity) WITH 'Paris'这要快得多,尤其是在循环中。
在Java端,您可能正在考虑使用Reflection应用程序接口。
发布于 2015-04-18 21:12:41
我也使用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,César Gómez,利马-珀罗
https://stackoverflow.com/questions/10512180
复制相似问题