概览;我需要从List创建一个json来存储在sqlLite数据库中。当我尝试创建json Eclipse时,我得到一个错误,即变量List必须是静态的。如果此变量更改为静态,我的应用程序显示不正确的结果,这不是一件好事。这是我创建json的类
public class Soluzione {
public String durata;
public List<Corsa> corse;
public Soluzione() {
corse = new ArrayList<Corsa>();
}
@Override
public String toString() {
StringBuilder str = new StringBuilder();
for (Corsa corsa : corse) {
if (str.length() > 0)
str.append('\n');
str.append(corsa.toString());
}
return str.toString();
}
public static JSONObject CreateJSon(List<Corsa> corse)
{
JSONObject jObj = new JSONObject();
try
{
Corsa prima = Soluzione.corse.get(0);
Corsa ultima = Soluzione.corse.get(corse.size()-1);
jObj.put("oraPartenza", prima.oraPartenza);
jObj.put("oraArrivo", ultima.oraArrivo);
jObj.put("partenza", prima.partenza);
jObj.put("arrivo", ultima.arrivo);
} catch (Exception e) { e.printStackTrace(); }
return jObj;
}
}
答案 0 :(得分:0)
你的字段corse和你的方法Create JSON的参数之间是不明确的。
不要使方法静态并删除参数
public JSONObject CreateJSon()
{
JSONObject jObj = new JSONObject();
try
{
Corsa prima = Soluzione.corse.get(0);
Corsa ultima = Soluzione.corse.get(corse.size()-1);
jObj.put("oraPartenza", prima.oraPartenza);
jObj.put("oraArrivo", ultima.oraArrivo);
jObj.put("partenza", prima.partenza);
jObj.put("arrivo", ultima.arrivo);
} catch (Exception e) { e.printStackTrace(); }
return jObj;
}
编辑:
因此,如果您想保持CreateJSon静态,请重命名参数名称以避免歧义:
Soluzione soluzione = new Soluzione();
Soluzione.CreateJSon (soluzione.corse);
或者您想要删除静态属性,您可以删除参数,然后执行以下操作:
Soluzione soluzione = new Soluzione();
soluzione.CreateJSon ();