我有这样的代码:
Map<String, Object> tempParam = new HashMap<>();
tempParam.put("custid", "123");
json = gson.toJson(tempParam);
String keyParams = "schema;tablename;where;clause";
String valueParams = "dbtrial;mastercustomer;"+json+";sort=id,date_&limit=10";
String res = genJSON(keyParams, valueParams);
function genJSON(String keyParams, String valueParams){
String[] key = keyParams.split(";");
String[] value = valueParams.split(";");
JSONObject objectMessage = new JSONObject();
for(int i = 0 ; i < key.length ; i++){
objectMessage.put(key[i], value[i]);
}
return objectMessage.toString();
}
我关心的是用分号分隔符然后分割的书写方式, 还有其他更简单或更有效的方法吗?我们可以让它更有活力吗? 因为“genJSON”函数将在全球范围内用于各种需求。 至少我想要干净的代码。
我尝试过使用这样的数组,但似乎没有太大区别。
String[] keyParams = ["schema", "tablename", "where", "clause"];
String[] valueParams = {"dbtrial", "mastercustomer", json, "sort=id,date_&limit=10"};
function genJSON(String[] keyParams, String[] valueParams){
JSONObject objectMessage = new JSONObject();
for(int i = 0 ; i < keyParams.length ; i++){
objectMessage.put(keyParams[i], valueParams[i]);
}
return objectMessage.toString();
}
您还有其他更好的想法或建议吗?
我用的是java 7
您尝试使用数组来表示
keyParams
和 valueParams
是一个好主意,可以使代码更干净、更易于维护。然而,在 Java 中初始化数组的方式存在一个小问题。这是更正后的代码:
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
JSONObject tempParam = new JSONObject();
tempParam.put("custid", "123");
String json = tempParam.toString();
String[] keyParams = {"schema", "tablename", "where", "clause"};
String[] valueParams = {"dbtrial", "mastercustomer", json, "sort=id,date_&limit=10"};
String res = genJSON(keyParams, valueParams);
System.out.println(res);
}
public static String genJSON(String[] keyParams, String[] valueParams) {
JSONObject objectMessage = new JSONObject();
for (int i = 0; i < keyParams.length; i++) {
objectMessage.put(keyParams[i], valueParams[i]);
}
return objectMessage.toString();
}
}
此代码将按预期工作,并且是管理
keyParams
和 valueParams
的更简洁的方式。使用数组的主要优点是它可以更好地组织代码并提高代码的可读性,特别是在参数数量增加的情况下。