我已经使用 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 这样的 OO 语言存在(或者确实如此,我只是错过了一些额外的研究?),无论如何,我想要拥有类似的事情这就是我的问题;
我有一个 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 的解决方案)。
提前致谢!
最佳答案
我不一定会尝试复制您在 Visual FoxPro 中可以执行的操作,因为在该语言中避免宏替换通常是一个好主意,除非您绝对必须使用它,并且您可以'不要使用名称表达式。
以下是名称表达式的示例:
STORE 'city' TO cVarCity
REPLACE (cVarCity) WITH 'Paris'
这要快得多,尤其是在循环中。
在 Java 方面,您可能正在考虑使用 Reflection API。
关于Android 使用的 JAVA 宏(存在吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10512180/