Java Json在android中返回空
我创建了这个类,并用json创建了数据。当我尝试在数据库sqLite中插入数据时,它似乎不起作用并返回空。这是创建Json的类:Java Json在android中返回空,java,android,json,sqlite,Java,Android,Json,Sqlite,我创建了这个类,并用json创建了数据。当我尝试在数据库sqLite中插入数据时,它似乎不起作用并返回空。这是创建Json的类: public class Corsa { public Corsa corsaData = null; public int id = 0; public String oraPartenza; public String oraArrivo; public String partenza; public String
public class Corsa
{
public Corsa corsaData = null;
public int id = 0;
public String oraPartenza;
public String oraArrivo;
public String partenza;
public String arrivo;
public String codiceLinea;
public String codiceCorsa;
public String tipoCorsa;
public String linkDettaglio;
@Override
public String toString() {
return partenza + " / "+ oraPartenza + "\n" + arrivo + " / " +oraArrivo;
}
public Corsa() {
}
/** Json **/
public static Corsa LoadJson(String jsonStr)
{
Corsa corsaJson = new Corsa();
try
{
JSONObject jObj = new JSONObject(jsonStr);
corsaJson.oraPartenza = HtmlUtils.getJSonString(jObj, "oraPartenza");
corsaJson.oraArrivo = HtmlUtils.getJSonString(jObj, "oraArrivo");
corsaJson.partenza = HtmlUtils.getJSonString(jObj, "partenza");
corsaJson.arrivo = HtmlUtils.getJSonString(jObj, "arrivo");
corsaJson.linkDettaglio = HtmlUtils.getJSonString(jObj, "linkDettaglio");
corsaJson.codiceCorsa = HtmlUtils.getJSonString(jObj, "codiceCorsa");
corsaJson.codiceLinea = HtmlUtils.getJSonString(jObj, "codiceLinea");
}
catch (Exception e) { e.printStackTrace(); }
return corsaJson;
}
public static JSONObject CreateJSon(Corsa corsaJson)
{
JSONObject jObj = new JSONObject();
try
{
jObj.put("oraPartenza", corsaJson.oraPartenza);
jObj.put("oraArrivo", corsaJson.oraArrivo);
jObj.put("partenza", corsaJson.partenza);
jObj.put("arrivo", corsaJson.arrivo);
jObj.put("linkDettaglio", corsaJson.linkDettaglio);
jObj.put("codiceCorsa", corsaJson.codiceCorsa);
jObj.put("codiceLinea", corsaJson.codiceLinea);
} catch (Exception e) { e.printStackTrace(); }
return jObj;
}
}
这是保存的json:
public static void SaveCorsa(Context context, Corsa c)
{
DeleteCorsa(context, c);
SqlHelper dbHelper = null;
try {
dbHelper = new SqlHelper(context);
SQLiteDatabase database = dbHelper.getWritableDatabase();
ContentValues initialValues = new ContentValues();
initialValues.put("CORSA_DATA", Corsa.CreateJSon(c.corsaData).toString());
database.insert(TABLE_PREFERITI, null, initialValues);
Log.d("Insert preferiti", initialValues.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (dbHelper!=null) dbHelper.close();
}
}
logCat返回CORSA_DATA{}..因此它是空的。。但这很奇怪,因为这是在活动中创造的。你知道怎么了吗?谢谢我建议您使用PHP完成Json部分,并使用MySQL数据库。毕竟,您可以直接在SQLite中调用/保存,而无需使用Json。我认为问题在于您没有指定json文件的保存/调用位置。读一读关于安卓的资产文件夹,MMH,你需要考虑一件我没有写的事情。这些数据是从jsoup解析中从web获取的。。我想,在解析完成之前,Corsa类是空的,对象是空的。。因为它们还没有被解析。。所以json也是空的。。可能吗?哦,我明白了,那么您应该在执行之前检查json,例如:ifjObj==null//dothis..mmh..where确切位置?在CreateJson中,检查所有json对象以防止出现空指针异常,我认为您的问题是jsoup/Corsa没有很好地检索url。这就是你的全部密码吗?